Module CSet.Hashcons

Create hash-consing for sets. The hashing function provided must be compatible with the comparison function.


module M : OrderedType
module H : HashedType with type t = M.t


type t = Stdlib.Set.Make(M).t

Type of objects to hashcons.

type u = M.t -> M.t

Type of hashcons functions for the sub-structures contained in t.

type table

Type of hashconsing tables

val generate : u -> table

This create a hashtable of the hashconsed objects.

val hcons : table -> t -> t

Perform the hashconsing of the given object within the table.

val stats : table -> Hashset.statistics

Recover statistics of the hashconsing table.