sig
  type t = Stdlib.Buffer.t
  val create : int -> BatBuffer.t
  val contents : BatBuffer.t -> string
  val to_bytes : BatBuffer.t -> Stdlib.Bytes.t
  val sub : BatBuffer.t -> int -> int -> string
  val blit : BatBuffer.t -> int -> Stdlib.Bytes.t -> int -> int -> unit
  val nth : BatBuffer.t -> int -> char
  val length : BatBuffer.t -> int
  val clear : BatBuffer.t -> unit
  val reset : BatBuffer.t -> unit
  val add_char : BatBuffer.t -> char -> unit
  val add_string : BatBuffer.t -> string -> unit
  val add_bytes : BatBuffer.t -> Stdlib.Bytes.t -> unit
  val add_substring : BatBuffer.t -> string -> int -> int -> unit
  val add_subbytes : BatBuffer.t -> Stdlib.Bytes.t -> int -> int -> unit
  val add_substitute : BatBuffer.t -> (string -> string) -> string -> unit
  val add_buffer : BatBuffer.t -> BatBuffer.t -> unit
  val add_input : BatBuffer.t -> BatInnerIO.input -> int -> unit
  val add_channel : BatBuffer.t -> BatInnerIO.input -> int -> unit
  val output_buffer : BatBuffer.t -> string BatInnerIO.output
  val truncate : BatBuffer.t -> int -> unit
  val add_utf_8_uchar : BatBuffer.t -> Stdlib.Uchar.t -> unit
  val add_utf_16le_uchar : BatBuffer.t -> Stdlib.Uchar.t -> unit
  val add_utf_16be_uchar : BatBuffer.t -> Stdlib.Uchar.t -> unit
  val enum : BatBuffer.t -> char BatEnum.t
  val of_enum : char BatEnum.t -> BatBuffer.t
  val print : 'BatInnerIO.output -> BatBuffer.t -> unit
  val to_seq : BatBuffer.t -> char Stdlib.Seq.t
  val to_seqi : BatBuffer.t -> (int * char) Stdlib.Seq.t
  val add_seq : BatBuffer.t -> char Stdlib.Seq.t -> unit
  val of_seq : char Stdlib.Seq.t -> BatBuffer.t
  val add_uint8 : BatBuffer.t -> int -> unit
  val add_int8 : BatBuffer.t -> int -> unit
  val add_uint16_ne : BatBuffer.t -> int -> unit
  val add_uint16_be : BatBuffer.t -> int -> unit
  val add_uint16_le : BatBuffer.t -> int -> unit
  val add_int16_ne : BatBuffer.t -> int -> unit
  val add_int16_be : BatBuffer.t -> int -> unit
  val add_int16_le : BatBuffer.t -> int -> unit
  val add_int32_ne : BatBuffer.t -> int32 -> unit
  val add_int32_be : BatBuffer.t -> int32 -> unit
  val add_int32_le : BatBuffer.t -> int32 -> unit
  val add_int64_ne : BatBuffer.t -> int64 -> unit
  val add_int64_be : BatBuffer.t -> int64 -> unit
  val add_int64_le : BatBuffer.t -> int64 -> unit
end