sig
  type t
  val zero : Bits.t
  val set_bit : Bits.t -> int -> Bits.t
  val set_bits : Bits.t -> int list -> Bits.t
  val unset_bit : Bits.t -> int -> Bits.t
  val unset_bits : Bits.t -> int list -> Bits.t
  val subset_bits : Bits.t -> Bits.t -> bool
  val is_bit_set : Bits.t -> int -> bool
  val are_bits_set : Bits.t -> int list -> bool
  val eq : Bits.t -> Bits.t -> bool
  val bits_and : Bits.t -> Bits.t -> Bits.t
  val bits_or : Bits.t -> Bits.t -> Bits.t
  val string_of_bits : Bits.t -> string
  val to_string : Bits.t -> string
end