sig
  type t
  val empty : unit -> CCBV.t
  val create : size:int -> bool -> CCBV.t
  val copy : CCBV.t -> CCBV.t
  val cardinal : CCBV.t -> int
  val length : CCBV.t -> int
  val resize : CCBV.t -> int -> unit
  val is_empty : CCBV.t -> bool
  val set : CCBV.t -> int -> unit
  val get : CCBV.t -> int -> bool
  val reset : CCBV.t -> int -> unit
  val flip : CCBV.t -> int -> unit
  val clear : CCBV.t -> unit
  val iter : CCBV.t -> (int -> bool -> unit) -> unit
  val iter_true : CCBV.t -> (int -> unit) -> unit
  val to_list : CCBV.t -> int list
  val to_sorted_list : CCBV.t -> int list
  val of_list : int list -> CCBV.t
  val first : CCBV.t -> int
  val filter : CCBV.t -> (int -> bool) -> unit
  val union_into : into:CCBV.t -> CCBV.t -> unit
  val inter_into : into:CCBV.t -> CCBV.t -> unit
  val union : CCBV.t -> CCBV.t -> CCBV.t
  val inter : CCBV.t -> CCBV.t -> CCBV.t
  val select : CCBV.t -> 'a array -> 'a list
  val selecti : CCBV.t -> 'a array -> ('a * int) list
  type 'a sequence = ('-> unit) -> unit
  val to_seq : CCBV.t -> int CCBV.sequence
  val of_seq : int CCBV.sequence -> CCBV.t
  val print : Format.formatter -> CCBV.t -> unit
end