sig
  type t
  val create : int -> FCBuffer.t
  val contents : FCBuffer.t -> string
  val to_bytes : FCBuffer.t -> bytes
  val sub : FCBuffer.t -> int -> int -> string
  val sub_bytes : FCBuffer.t -> int -> int -> bytes
  val blit : FCBuffer.t -> int -> bytes -> int -> int -> unit
  val blit_buffer : FCBuffer.t -> int -> FCBuffer.t -> int -> int -> unit
  val blit_substring : string -> int -> FCBuffer.t -> int -> int -> unit
  val blit_subbytes : bytes -> int -> FCBuffer.t -> int -> int -> unit
  val nth : FCBuffer.t -> int -> char
  val length : FCBuffer.t -> int
  val clear : FCBuffer.t -> unit
  val reset : FCBuffer.t -> unit
  val truncate : FCBuffer.t -> int -> unit
  val add_char : FCBuffer.t -> char -> unit
  val add_string : FCBuffer.t -> string -> unit
  val add_bytes : FCBuffer.t -> bytes -> unit
  val add_substring : FCBuffer.t -> string -> int -> int -> unit
  val add_subbytes : FCBuffer.t -> bytes -> int -> int -> unit
  val add_substitute : FCBuffer.t -> (string -> string) -> string -> unit
  val add_buffer : FCBuffer.t -> FCBuffer.t -> unit
  val add_channel : FCBuffer.t -> Pervasives.in_channel -> int -> unit
  val output_buffer : Pervasives.out_channel -> FCBuffer.t -> unit
end