sig
  type t
  type elt
  val empty : GenericSet.GenericSetSig.t
  val is_empty : GenericSet.GenericSetSig.t -> bool
  val singleton : GenericSet.GenericSetSig.elt -> GenericSet.GenericSetSig.t
  val mem :
    GenericSet.GenericSetSig.elt -> GenericSet.GenericSetSig.t -> bool
  val add :
    GenericSet.GenericSetSig.elt ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val remove :
    GenericSet.GenericSetSig.elt ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val union :
    GenericSet.GenericSetSig.t ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val diff :
    GenericSet.GenericSetSig.t ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val equal :
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t -> bool
  val elements :
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.elt list
  val cardinal : GenericSet.GenericSetSig.t -> int
  val iter :
    (GenericSet.GenericSetSig.elt -> unit) ->
    GenericSet.GenericSetSig.t -> unit
  val fold :
    (GenericSet.GenericSetSig.elt -> '-> 'b) ->
    GenericSet.GenericSetSig.t -> '-> 'b
  val exists :
    (GenericSet.GenericSetSig.elt -> bool) ->
    GenericSet.GenericSetSig.t -> bool
  val filter :
    (GenericSet.GenericSetSig.elt -> bool) ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val inter :
    GenericSet.GenericSetSig.t ->
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t
  val of_list :
    GenericSet.GenericSetSig.elt list -> GenericSet.GenericSetSig.t
  val of_array :
    GenericSet.GenericSetSig.elt array -> GenericSet.GenericSetSig.t
  val subset :
    GenericSet.GenericSetSig.t -> GenericSet.GenericSetSig.t -> bool
end