module type HashedType = Hashtbl.HashedTypetype 
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.
          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).