Make
module E : Elt
module S : Set with type elt = E.t
module _ : Map with type key = E.t
type t
type elt = E.t
type set = S.t
val empty : t
val equal : t -> elt -> elt -> bool
val merge : t -> elt -> elt -> t
val merge_list : t -> elt list -> t
val merge_set : t -> set -> t
val lookup : t -> elt -> elt
val members : t -> elt -> set
val iter : (elt -> set -> unit) -> t -> unit
val unstable_iter : (elt -> elt -> unit) -> t -> unit
val map : (elt -> elt) -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val is_empty : t -> bool