sig
  val enum : Buffer.t -> char BatEnum.t
  val of_enum : char BatEnum.t -> Buffer.t
  val blit : Buffer.t -> int -> string -> int -> int -> unit
  val add_input : Buffer.t -> BatInnerIO.input -> int -> unit
  val add_channel : Buffer.t -> BatInnerIO.input -> int -> unit
  val output_buffer : 'BatInnerIO.output -> Buffer.t -> unit
  val print : 'BatInnerIO.output -> Buffer.t -> unit
end