sig
  type elt
  type t
  val empty : Set.S.t
  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 disjoint : Set.S.t -> Set.S.t -> bool
  val diff : 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 min_elt_opt : Set.S.t -> Set.S.elt option
  val max_elt : Set.S.t -> Set.S.elt
  val max_elt_opt : Set.S.t -> Set.S.elt option
  val choose : Set.S.t -> Set.S.elt
  val choose_opt : Set.S.t -> Set.S.elt option
  val find : Set.S.elt -> Set.S.t -> Set.S.elt
  val find_opt : Set.S.elt -> Set.S.t -> Set.S.elt option
  val find_first : (Set.S.elt -> bool) -> Set.S.t -> Set.S.elt
  val find_first_opt : (Set.S.elt -> bool) -> Set.S.t -> Set.S.elt option
  val find_last : (Set.S.elt -> bool) -> Set.S.t -> Set.S.elt
  val find_last_opt : (Set.S.elt -> bool) -> Set.S.t -> Set.S.elt option
  val iter : (Set.S.elt -> unit) -> Set.S.t -> unit
  val fold : (Set.S.elt -> 'acc -> 'acc) -> Set.S.t -> 'acc -> 'acc
  val map : (Set.S.elt -> Set.S.elt) -> Set.S.t -> Set.S.t
  val filter : (Set.S.elt -> bool) -> Set.S.t -> Set.S.t
  val filter_map : (Set.S.elt -> Set.S.elt option) -> Set.S.t -> Set.S.t
  val partition : (Set.S.elt -> bool) -> Set.S.t -> Set.S.t * Set.S.t
  val split : Set.S.elt -> Set.S.t -> Set.S.t * bool * Set.S.t
  val is_empty : Set.S.t -> bool
  val mem : Set.S.elt -> Set.S.t -> bool
  val equal : Set.S.t -> Set.S.t -> bool
  val compare : Set.S.t -> Set.S.t -> int
  val subset : Set.S.t -> Set.S.t -> bool
  val for_all : (Set.S.elt -> bool) -> Set.S.t -> bool
  val exists : (Set.S.elt -> bool) -> Set.S.t -> bool
  val to_list : Set.S.t -> Set.S.elt list
  val of_list : Set.S.elt list -> Set.S.t
  val to_seq_from : Set.S.elt -> Set.S.t -> Set.S.elt Stdlib.Seq.t
  val to_seq : Set.S.t -> Set.S.elt Stdlib.Seq.t
  val to_rev_seq : Set.S.t -> Set.S.elt Stdlib.Seq.t
  val add_seq : Set.S.elt Stdlib.Seq.t -> Set.S.t -> Set.S.t
  val of_seq : Set.S.elt Stdlib.Seq.t -> Set.S.t
end