# Module ExtBuffer.Buffer

    module Buffer: sig .. end

    type t = Stdlib.Buffer.t

    val create : int -> t

    val contents : t -> string

    val to_bytes : t -> ExtBytes.Bytes.t

    val sub : t -> int -> int -> string

    val blit : t -> int -> ExtBytes.Bytes.t -> int -> int -> unit

    val nth : t -> int -> char

    val length : t -> int

    val clear : t -> unit

    val reset : t -> unit

    val add_char : t -> char -> unit

    val add_string : t -> string -> unit

    val add_bytes : t -> ExtBytes.Bytes.t -> unit

    val add_substring : t -> string -> int -> int -> unit

    val add_subbytes : t -> ExtBytes.Bytes.t -> int -> int -> unit

    val add_substitute : t -> (string -> string) -> string -> unit

    val add_buffer : t -> t -> unit

    val add_channel : t -> Stdlib.in_channel -> int -> unit

    val output_buffer : Stdlib.out_channel -> t -> unit

    val truncate : t -> int -> unit

    val add_utf_8_uchar : t -> Stdlib.Uchar.t -> unit

    val add_utf_16le_uchar : t -> Stdlib.Uchar.t -> unit

    val add_utf_16be_uchar : t -> Stdlib.Uchar.t -> unit

    val to_seq : t -> char Stdlib.Seq.t

`*_seq` functions were introduced in OCaml 4.07.0, and are _not_ implemented in extlib for older OCaml versions

    val to_seqi : t -> (int * char) Stdlib.Seq.t

    val add_seq : t -> char Stdlib.Seq.t -> unit

    val of_seq : char Stdlib.Seq.t -> t