sig
type elt
type t
+ type set
val empty : t
val any : t
val is_empty : t -> bool
val choose : t -> elt
val hash : t -> int
val equal : t -> t -> bool
+ val positive : t -> set
+ val negative : t -> set
+ val inj_positive : set -> t
+ val inj_negative : set -> t
end
-module Make : functor (E : Sigs.Set) -> S with type elt = E.elt
+module Make : functor (E : Sigs.Set) -> S with type elt = E.elt and type set = E.t