module type HashedType =`sig`

..`end`

The input signature of the functor

`Hashtbl.Make`

.`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- (
`(=)`

,`Hashtbl.hash`

) for comparing objects by structure (provided objects do not contain floats) - (
`(fun x y -> compare x y = 0)`

,`Hashtbl.hash`

) for comparing objects by structure and handling`nan`

correctly - (
`(==)`

,`Hashtbl.hash`

) for comparing objects by physical equality (e.g. for mutable or cyclic objects).