sig
  type t
  val add : int -> IntSet.t -> IntSet.t
  val cardinal : IntSet.t -> int
  val compare : IntSet.t -> IntSet.t -> int
  val diff : IntSet.t -> IntSet.t -> IntSet.t
  val elements : IntSet.t -> int list
  val empty : IntSet.t
  val equal : IntSet.t -> IntSet.t -> bool
  val exists : (int -> bool) -> IntSet.t -> bool
  val filter : (int -> bool) -> IntSet.t -> IntSet.t
  val fold : (int -> '-> 'a) -> IntSet.t -> '-> 'a
  val for_all : (int -> bool) -> IntSet.t -> bool
  val inter : IntSet.t -> IntSet.t -> IntSet.t
  val is_empty : IntSet.t -> bool
  val iter : (int -> unit) -> IntSet.t -> unit
  val max_elt : IntSet.t -> int option
  val mem : int -> IntSet.t -> bool
  val min_elt : IntSet.t -> int option
  val partition : (int -> bool) -> IntSet.t -> IntSet.t * IntSet.t
  val remove : int -> IntSet.t -> IntSet.t
  val singleton : int -> IntSet.t
  val subset : IntSet.t -> IntSet.t -> bool
  val union : IntSet.t -> IntSet.t -> IntSet.t
  val to_string : IntSet.t -> string
  val of_list : int list -> IntSet.t
  val of_int : int -> IntSet.t
  val off : int -> IntSet.t -> IntSet.t
  val fix : IntSet.t -> Iso.t
  val apply : Iso.t -> IntSet.t -> IntSet.t
  val union_list : IntSet.t list -> IntSet.t
  val merge : IntSet.t list -> IntSet.t list
  val disjoint : IntSet.t -> IntSet.t -> bool
end