Module CSet

module type OrderedType = sig ... end
module type S = Stdlib.Set.S
module Make : functor (M : OrderedType) -> S with type Make.elt = M.t and type Make.t = Stdlib.Set.Make(M).t
module type HashedType = sig ... end
module Hashcons : functor (M : OrderedType) -> functor (H : 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.