module type HashedType : `sig ... end`

The input signature of the functor `Hashtbl.Make`

.
`t`

is the type of keys.
`equal`

is the equality predicate used to compare keys.
`hash`

is a hashing function on keys, returning a non-negative
integer. It must be such that if two keys are equal according
to `equal`

, then they must 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, and
(`(==)`

, `Hashtbl.hash`

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