module CCBV:sig..end
The size of the bitvector is rounded up to the multiple of 30 or  62.
In other words some functions such as CCBV.iter might iterate on more
bits than what was originally asked for.
type t 
val empty : unit -> tval create : size:int -> bool -> tval copy : t -> tval cardinal : t -> intval length : t -> intval resize : t -> int -> unitresize bv n should make bv able to store (Sys.word_size - 2)* n bitsval is_empty : t -> boolval set : t -> int -> unitval get : t -> int -> boolval reset : t -> int -> unitval flip : t -> int -> unitval clear : t -> unitval iter : t -> (int -> bool -> unit) -> unitval iter_true : t -> (int -> unit) -> unitval to_list : t -> int listval to_sorted_list : t -> int listCCBV.to_list, but also guarantees the list is sorted in
    increasing orderval of_list : int list -> tval first : t -> intNot_found if all bits are 0val filter : t -> (int -> bool) -> unitfilter bv p only keeps the true bits of bv whose index
    satisfies p indexval union_into : into:t -> t -> unitunion ~into bv sets into to the union of itself and bv.val inter_into : into:t -> t -> unitinter ~into bv sets into to the intersection of itself and bvval union : t -> t -> tunion bv1 bv2 returns the union of the two setsval inter : t -> t -> tinter bv1 bv2 returns the intersection of the two setsval select : t -> 'a array -> 'a listselect arr bv selects the elements of arr whose index
    corresponds to a true bit in bv. If bv is too short, elements of arr
    with too high an index cannot be selected and are therefore not
    selected.val selecti : t -> 'a array -> ('a * int) listCCBV.select, but selected elements are paired with their indextype'asequence =('a -> unit) -> unit
val to_seq : t -> int sequence
val of_seq : int sequence -> t
val print : Format.formatter -> t -> unit