sig   type t = Buffer.t   val create : int -> BatBuffer.t   val contents : BatBuffer.t -> string   val to_bytes : BatBuffer.t -> Bytes.t   val sub : BatBuffer.t -> int -> int -> string   val blit : BatBuffer.t -> int -> string -> 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 -> Bytes.t -> unit   val add_substring : BatBuffer.t -> string -> int -> int -> unit   val add_subbytes : BatBuffer.t -> 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 enum : BatBuffer.t -> char BatEnum.t   val of_enum : char BatEnum.t -> BatBuffer.t   val print : 'BatInnerIO.output -> BatBuffer.t -> unit end