The input signature of the functor

`Hashtbl.Make`

.
The type of the hashtable keys.

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`Pervasives.nan`

correctly - (
`(==)`

,`Hashtbl.hash`

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