Module HashCons

module HashCons: sig .. end
Hash-consing module.

type 'a hc = {
   x :'a;
   tag :int;
The type of hash-consed values, inspired by Filliatre's work. When hash-consed, the tags are unique and == can be used for =.
val hash_list : 'a hc list -> int
A hashing function for 'a hc lists.
module type Type = sig .. end
A module used to simulate existential types.
module type S = sig .. end
The module for hash-consing tables.
module Make: 
functor (H : Hashtbl.HashedType) ->
functor (V : Hashtbl.HashedType) -> S with type data = H.t and type other_value = V.t
Functor to create the S module.