sig
type elt
+ type data
type t
val empty : t
val is_empty : t -> bool
val is_singleton : t -> bool
val mem_union : t -> t -> t
val hash : t -> int
-val uid : t -> int
+val uid : t -> Uid.t
val uncons : t -> elt * t
val from_list : elt list -> t
+val make : data -> t
+val node : t -> data
end
-module Int : S with type elt = int
+module Int : sig
+ include S with type elt = int
+ val print : Format.formatter -> t -> unit
+end
+
module Make ( H : Hcons.S ) : S with type elt = H.t