sig
  type t
  val create : int -> bool -> Bitv.t
  val init : int -> (int -> bool) -> Bitv.t
  val set : Bitv.t -> int -> bool -> unit
  val get : Bitv.t -> int -> bool
  val length : Bitv.t -> int
  val equal : Bitv.t -> Bitv.t -> bool
  val max_length : int
  val copy : Bitv.t -> Bitv.t
  val append : Bitv.t -> Bitv.t -> Bitv.t
  val concat : Bitv.t list -> Bitv.t
  val sub : Bitv.t -> int -> int -> Bitv.t
  val fill : Bitv.t -> int -> int -> bool -> unit
  val blit : Bitv.t -> int -> Bitv.t -> int -> int -> unit
  val iter : (bool -> unit) -> Bitv.t -> unit
  val map : (bool -> bool) -> Bitv.t -> Bitv.t
  val iteri : (int -> bool -> unit) -> Bitv.t -> unit
  val mapi : (int -> bool -> bool) -> Bitv.t -> Bitv.t
  val fold_left : ('-> bool -> 'a) -> '-> Bitv.t -> 'a
  val fold_right : (bool -> '-> 'a) -> Bitv.t -> '-> 'a
  val bw_and : Bitv.t -> Bitv.t -> Bitv.t
  val bw_or : Bitv.t -> Bitv.t -> Bitv.t
  val bw_xor : Bitv.t -> Bitv.t -> Bitv.t
  val bw_not : Bitv.t -> Bitv.t
  val shiftl : Bitv.t -> int -> Bitv.t
  val shiftr : Bitv.t -> int -> Bitv.t
  val all_zeros : Bitv.t -> bool
  val all_ones : Bitv.t -> bool
  val to_string : Bitv.t -> string
  val from_string : string -> Bitv.t
  val unsafe_set : Bitv.t -> int -> bool -> unit
  val unsafe_get : Bitv.t -> int -> bool
end