sig
  type t
  type elt
  val create : unit -> ExtSSetImp.S.t
  val is_empty : ExtSSetImp.S.t -> bool
  val mem : ExtSSetImp.S.elt -> ExtSSetImp.S.t -> bool
  val add : ExtSSetImp.S.elt -> ExtSSetImp.S.t -> unit
  val add_list : ExtSSetImp.S.elt list -> ExtSSetImp.S.t -> unit
  val singleton : ExtSSetImp.S.elt -> ExtSSetImp.S.t
  val remove : ExtSSetImp.S.elt -> ExtSSetImp.S.t -> unit
  val compare : ExtSSetImp.S.t -> ExtSSetImp.S.t -> int
  val equal : ExtSSetImp.S.t -> ExtSSetImp.S.t -> bool
  val subset : ExtSSetImp.S.t -> ExtSSetImp.S.t -> bool
  val iter : (ExtSSetImp.S.elt -> unit) -> ExtSSetImp.S.t -> unit
  val fold : (ExtSSetImp.S.elt -> '-> 'a) -> ExtSSetImp.S.t -> '-> 'a
  val for_all : (ExtSSetImp.S.elt -> bool) -> ExtSSetImp.S.t -> bool
  val exists : (ExtSSetImp.S.elt -> bool) -> ExtSSetImp.S.t -> bool
  val filter : (ExtSSetImp.S.elt -> bool) -> ExtSSetImp.S.t -> unit
  val cardinal : ExtSSetImp.S.t -> int
  val elements : ExtSSetImp.S.t -> ExtSSetImp.S.elt list
  val min_elt : ExtSSetImp.S.t -> ExtSSetImp.S.elt
  val max_elt : ExtSSetImp.S.t -> ExtSSetImp.S.elt
  val choose : ExtSSetImp.S.t -> ExtSSetImp.S.elt
  val from_list : ExtSSetImp.S.elt list -> ExtSSetImp.S.t
  val string_of : ExtSSetImp.S.t -> string
  val string_of_complex :
    ?start_char:string -> ?end_char:string -> ExtSSetImp.S.t -> string
end