Extends any type with a type-safe and balanced ===
operator.
Type-class representing equality of two arguments with arbitrary respective types.
Type-class representing equality of two arguments with arbitrary respective types.
Mixed into Equality to disambiguate the L =:= R
case.
Provides type-class instances based on natural equality for any two types
in a L => R
or R => L
implicit conversion relationship.
By importing
ViewWiseBalancedEquality._
you get type-safe and view-wise balanced equality:This equality is balanced with respect to implicit conversions, hence
===
works (compiles) for any two arguments on the left and right, whose types are in a implicit conversion relationship (which includes a subtype relationship), i.e. one can be viewed as the other: