module Hash:`Hashhe.HashedType`

`with type t=key`

`type `

t

The type of the hashtable keys.

`val equal : ``t -> t -> bool`

The equality predicate used to compare keys.

`val hash : ``t -> int`

A hashing function on keys. It must be such that if two keys are
equal according to

`equal`

, then they have identical hash values
as computed by `hash`

.
Examples: suitable (`equal`

, `hash`

) pairs for arbitrary key
types include
(`(=)`

, `Hashhe.HashedType.hash`

) for comparing objects by structure,
(`(fun x y -> compare x y = 0)`

, `Hashhe.HashedType.hash`

)
for comparing objects by structure and handling `Pervasives.nan`

correctly, and
(`(==)`

, `Hashhe.HashedType.hash`

) for comparing objects by addresses
(e.g. for or cyclic keys).