A trait for representing equivalence relations. It is important to
distinguish between a type that can be compared for equality or
equivalence and a representation of equivalence on some type. This
trait is for representing the latter.
An equivalence relation
is a binary relation on a type. This relation is exposed as
the equiv method of the Equiv trait. The relation must be:
reflexive: equiv(x, x) == true for any x of type T.
symmetric: equiv(x, y) == equiv(y, x) for any x and y of type T.
transitive: if equiv(x, y) == true and equiv(y, z) == true, then
equiv(x, z) == true for any x, y, and z of type T.
A trait for representing equivalence relations. It is important to distinguish between a type that can be compared for equality or equivalence and a representation of equivalence on some type. This trait is for representing the latter.
An equivalence relation is a binary relation on a type. This relation is exposed as the
equiv
method of theEquiv
trait. The relation must be:equiv(x, x) == true
for any x of typeT
.equiv(x, y) == equiv(y, x)
for anyx
andy
of typeT
.equiv(x, y) == true
andequiv(y, z) == true
, thenequiv(x, z) == true
for anyx
,y
, andz
of typeT
.1.0, 2008-04-03
2.7