module type HashedType =sig..end
The input signature of the functor MoreLabels.Hashtbl.Make.
type t
The type of the hashtable keys.
val equal : t -> t -> boolThe equality predicate used to compare keys.
val hash : t -> intA 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.
The hash value of a key should remain constant as long as the key is in the table. In particular, if the hash function depends on mutable key data, then that data must not be mutated while the key is in the table. Similarly, as the hash function may be called while the table itself is being modified, it should avoid accessing the table as part of its computation.
Examples: suitable (equal, hash) pairs for arbitrary key
types include
(=), MoreLabels.Hashtbl.HashedType.hash) for comparing objects by structure
(provided objects do not contain floats)(fun x y -> compare x y = 0), MoreLabels.Hashtbl.HashedType.hash)
for comparing objects by structure
and handling nan correctly(==), MoreLabels.Hashtbl.HashedType.hash) for comparing objects by physical
equality (e.g. for mutable or cyclic objects).