sig
  type buf
  val create : int -> UTF8.Buf.buf
  val contents : UTF8.Buf.buf -> UTF8.t
  val clear : UTF8.Buf.buf -> unit
  val reset : UTF8.Buf.buf -> unit
  val add_char : UTF8.Buf.buf -> UChar.uchar -> unit
  val add_string : UTF8.Buf.buf -> UTF8.t -> unit
  val add_buffer : UTF8.Buf.buf -> UTF8.Buf.buf -> unit
end