Module CSet

module type OrderedType = sig ... end
module type S = Stdlib.Set.S
module Make (M : OrderedType) : S with type elt = M.t and type t = Stdlib.Set.Make(M).t
module type HashedType = sig ... end
module Hashcons (M : OrderedType) (_ : HashedType with type t = M.t) : Hashcons.S with type t = Stdlib.Set.Make(M).t and type u = M.t -> M.t

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