sig
  type t = Buffer.t
  val create : int -> ExtBuffer.Buffer.t
  val contents : ExtBuffer.Buffer.t -> string
  val to_bytes : ExtBuffer.Buffer.t -> ExtBytes.Bytes.t
  val sub : ExtBuffer.Buffer.t -> int -> int -> string
  val blit :
    ExtBuffer.Buffer.t -> int -> ExtBytes.Bytes.t -> int -> int -> unit
  val nth : ExtBuffer.Buffer.t -> int -> char
  val length : ExtBuffer.Buffer.t -> int
  val clear : ExtBuffer.Buffer.t -> unit
  val reset : ExtBuffer.Buffer.t -> unit
  val add_char : ExtBuffer.Buffer.t -> char -> unit
  val add_string : ExtBuffer.Buffer.t -> string -> unit
  val add_bytes : ExtBuffer.Buffer.t -> ExtBytes.Bytes.t -> unit
  val add_substring : ExtBuffer.Buffer.t -> string -> int -> int -> unit
  val add_subbytes :
    ExtBuffer.Buffer.t -> ExtBytes.Bytes.t -> int -> int -> unit
  val add_substitute :
    ExtBuffer.Buffer.t -> (string -> string) -> string -> unit
  val add_buffer : ExtBuffer.Buffer.t -> ExtBuffer.Buffer.t -> unit
  val add_channel :
    ExtBuffer.Buffer.t -> Pervasives.in_channel -> int -> unit
  val output_buffer : Pervasives.out_channel -> ExtBuffer.Buffer.t -> unit
end