sig
  type t
  exception Negative_index of string
  val empty : unit -> BitSet.t
  val create : int -> BitSet.t
  val copy : BitSet.t -> BitSet.t
  val clone : BitSet.t -> BitSet.t
  val set : BitSet.t -> int -> unit
  val unset : BitSet.t -> int -> unit
  val put : BitSet.t -> bool -> int -> unit
  val toggle : BitSet.t -> int -> unit
  val is_set : BitSet.t -> int -> bool
  val compare : BitSet.t -> BitSet.t -> int
  val equals : BitSet.t -> BitSet.t -> bool
  val count : BitSet.t -> int
  val enum : BitSet.t -> int Enum.t
  val intersect : BitSet.t -> BitSet.t -> unit
  val unite : BitSet.t -> BitSet.t -> unit
  val differentiate : BitSet.t -> BitSet.t -> unit
  val differentiate_sym : BitSet.t -> BitSet.t -> unit
  val inter : BitSet.t -> BitSet.t -> BitSet.t
  val union : BitSet.t -> BitSet.t -> BitSet.t
  val diff : BitSet.t -> BitSet.t -> BitSet.t
  val sym_diff : BitSet.t -> BitSet.t -> BitSet.t
end