`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, (`(fun x y -> compare x y = 0)`, `Hashtbl.hash`) for comparing objects by structure and handling `Pervasives.nan` correctly, and (`(==)`, `Hashtbl.hash`) for comparing objects by addresses (e.g. for cyclic keys).