`sig module type OrderedType = sig type t val compare : Set.OrderedType.t -> Set.OrderedType.t -> int end module type S = sig type elt type t val empty : Set.S.t val is_empty : Set.S.t -> bool val mem : Set.S.elt -> Set.S.t -> bool val add : Set.S.elt -> Set.S.t -> Set.S.t val singleton : Set.S.elt -> Set.S.t val remove : Set.S.elt -> Set.S.t -> Set.S.t val union : Set.S.t -> Set.S.t -> Set.S.t val inter : Set.S.t -> Set.S.t -> Set.S.t val diff : Set.S.t -> Set.S.t -> Set.S.t val compare : Set.S.t -> Set.S.t -> int val equal : Set.S.t -> Set.S.t -> bool val subset : Set.S.t -> Set.S.t -> bool val iter : (Set.S.elt -> unit) -> Set.S.t -> unit val fold : (Set.S.elt -> 'a -> 'a) -> Set.S.t -> 'a -> 'a val for_all : (Set.S.elt -> bool) -> Set.S.t -> bool val exists : (Set.S.elt -> bool) -> Set.S.t -> bool val filter : (Set.S.elt -> bool) -> Set.S.t -> Set.S.t val partition : (Set.S.elt -> bool) -> Set.S.t -> Set.S.t * Set.S.t val cardinal : Set.S.t -> int val elements : Set.S.t -> Set.S.elt list val min_elt : Set.S.t -> Set.S.elt val max_elt : Set.S.t -> Set.S.elt val choose : Set.S.t -> Set.S.elt val split : Set.S.elt -> Set.S.t -> Set.S.t * bool * Set.S.t val find : Set.S.elt -> Set.S.t -> Set.S.elt val of_list : Set.S.elt list -> Set.S.t end module Make : functor (Ord : OrderedType) -> sig type elt = Ord.t type t val empty : t val is_empty : t -> bool val mem : elt -> t -> bool val add : elt -> t -> t val singleton : elt -> t val remove : elt -> t -> t val union : t -> t -> t val inter : t -> t -> t val diff : t -> t -> t val compare : t -> t -> int val equal : t -> t -> bool val subset : t -> t -> bool val iter : (elt -> unit) -> t -> unit val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a val for_all : (elt -> bool) -> t -> bool val exists : (elt -> bool) -> t -> bool val filter : (elt -> bool) -> t -> t val partition : (elt -> bool) -> t -> t * t val cardinal : t -> int val elements : t -> elt list val min_elt : t -> elt val max_elt : t -> elt val choose : t -> elt val split : elt -> t -> t * bool * t val find : elt -> t -> elt val of_list : elt list -> t end end`