# Module type Hashtbl.HashedType

    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).