|Portability||GHC, Hugs (MPTC and FD)|
|Maintainer||robdockins AT fastmail DOT fm|
This module is a central depository of common definitions used throughout Edison.
This class represents hashable objects. If obeys the following invariant:
forall x,y :: a. (x == y) implies (hash x == hash y)
This class represents hashable objects where the hash function is unique (injective). There are no new methods, just a stronger invariant:
forall x,y :: a. (x == y) iff (hash x == hash y)
This class represents hashable objects where the hash is reversible.
forall x :: a. unhash (hash x) == x
hash (unhash i) == i
does not necessarily hold because
unhash is not necessarily
defined for all
i, only for all
i in the range of hash.
This class represents a quantity that can be measured. It is
calculated by an associative function with a unit (hence the
Monoid superclass, and by a function which gives the measurement
for an individual item. Some datastructures are able to speed up
the calculation of a measure by caching intermediate values of