sig
  type endian = BigEndian | LittleEndian | NativeEndian
  val string_of_endian : Bitstring.endian -> string
  type bitstring = string * int * int
  exception Construct_failure of string * string * int * int
  val bitstring_length : Bitstring.bitstring -> int
  val subbitstring : Bitstring.bitstring -> int -> int -> Bitstring.bitstring
  val dropbits : int -> Bitstring.bitstring -> Bitstring.bitstring
  val takebits : int -> Bitstring.bitstring -> Bitstring.bitstring
  val empty_bitstring : Bitstring.bitstring
  val create_bitstring : int -> Bitstring.bitstring
  val make_bitstring : int -> char -> Bitstring.bitstring
  val zeroes_bitstring : int -> Bitstring.bitstring
  val ones_bitstring : int -> Bitstring.bitstring
  val bitstring_of_string : string -> Bitstring.bitstring
  val bitstring_of_file : string -> Bitstring.bitstring
  val bitstring_of_chan : Pervasives.in_channel -> Bitstring.bitstring
  val bitstring_of_chan_max :
    Pervasives.in_channel -> int -> Bitstring.bitstring
  val bitstring_of_file_descr : Unix.file_descr -> Bitstring.bitstring
  val bitstring_of_file_descr_max :
    Unix.file_descr -> int -> Bitstring.bitstring
  val string_of_bitstring : Bitstring.bitstring -> string
  val bitstring_to_file : Bitstring.bitstring -> string -> unit
  val bitstring_to_chan :
    Bitstring.bitstring -> Pervasives.out_channel -> unit
  val hexdump_bitstring :
    Pervasives.out_channel -> Bitstring.bitstring -> unit
  module Buffer :
    sig
      type t
      val create : unit -> Bitstring.Buffer.t
      val contents : Bitstring.Buffer.t -> Bitstring.bitstring
      val add_bits : Bitstring.Buffer.t -> string -> int -> unit
      val add_bit : Bitstring.Buffer.t -> bool -> unit
      val add_byte : Bitstring.Buffer.t -> int -> unit
    end
  val package : string
  val version : string
  val debug : bool Pervasives.ref
  val extract_bitstring :
    string -> int -> int -> int -> Bitstring.bitstring * int * int
  val extract_remainder :
    string -> int -> int -> Bitstring.bitstring * int * int
  val extract_bit : string -> int -> int -> int -> bool * int * int
  val extract_char_unsigned : string -> int -> int -> int -> int * int * int
  val extract_int_be_unsigned :
    string -> int -> int -> int -> int * int * int
  val extract_int_le_unsigned :
    string -> int -> int -> int -> int * int * int
  val extract_int_ne_unsigned :
    string -> int -> int -> int -> int * int * int
  val extract_int_ee_unsigned :
    Bitstring.endian -> string -> int -> int -> int -> int * int * int
  val extract_int32_be_unsigned :
    string -> int -> int -> int -> int32 * int * int
  val extract_int32_le_unsigned :
    string -> int -> int -> int -> int32 * int * int
  val extract_int32_ne_unsigned :
    string -> int -> int -> int -> int32 * int * int
  val extract_int32_ee_unsigned :
    Bitstring.endian -> string -> int -> int -> int -> int32 * int * int
  val extract_int64_be_unsigned :
    string -> int -> int -> int -> int64 * int * int
  val extract_int64_le_unsigned :
    string -> int -> int -> int -> int64 * int * int
  val extract_int64_ne_unsigned :
    string -> int -> int -> int -> int64 * int * int
  val extract_int64_ee_unsigned :
    Bitstring.endian -> string -> int -> int -> int -> int64 * int * int
  val construct_bit : Bitstring.Buffer.t -> bool -> int -> exn -> unit
  val construct_char_unsigned :
    Bitstring.Buffer.t -> int -> int -> exn -> unit
  val construct_int_be_unsigned :
    Bitstring.Buffer.t -> int -> int -> exn -> unit
  val construct_int_ne_unsigned :
    Bitstring.Buffer.t -> int -> int -> exn -> unit
  val construct_int_ee_unsigned :
    Bitstring.endian -> Bitstring.Buffer.t -> int -> int -> exn -> unit
  val construct_int32_be_unsigned :
    Bitstring.Buffer.t -> int32 -> int -> exn -> unit
  val construct_int32_ne_unsigned :
    Bitstring.Buffer.t -> int32 -> int -> exn -> unit
  val construct_int32_ee_unsigned :
    Bitstring.endian -> Bitstring.Buffer.t -> int32 -> int -> exn -> unit
  val construct_int64_be_unsigned :
    Bitstring.Buffer.t -> int64 -> int -> exn -> unit
  val construct_int64_ne_unsigned :
    Bitstring.Buffer.t -> int64 -> int -> exn -> unit
  val construct_int64_ee_unsigned :
    Bitstring.endian -> Bitstring.Buffer.t -> int64 -> int -> exn -> unit
  val construct_string : Bitstring.Buffer.t -> string -> unit
  val construct_bitstring : Bitstring.Buffer.t -> Bitstring.bitstring -> unit
end