Describes types that have a natural equivalence relation,
such as an integer. There are types for which multiple good
equivalence relationships exist--consider a modifiable sequence, that
can be compared either element-by-element or by reference.
On the other hand, for an immutable sequence
element-by-element comparison makes more sense.
When obviously best choice doesn't exist, it is preferrable to
force the programmer to make decision which equivalence relation
to use explicitly. Data structures have been designed to
allow the relation to be selected.
For operators == and != to work on values of a type, the type
must implement this interface.
concept equality comparable
Declaration: equality comparable
Announcements: equality comparable
Direct supertypes: value
All supertypes: entity
Direct subtypes: boolean / comparable / null / procedure / range / character / string / reference equality / identifier / type id / variable id / gregorian day / gregorian month / has equivalence / test1
All subtypes: sign / integer / nonnegative / missing / special text / string text node / element id / attribute id / text namespace / resource identifier / base range / base string / base namespace / base element id / base attribute id / text entity / base resource identifier / json token / base gregorian month
Use: operators / operators / utilities / utilities / singleton pattern / predicate pattern / repeat element / list pattern
not yet implemented static equivalence relation[equality comparable] natural equality