sig
  type buf
  val create : int -> UText.Buf.buf
  val contents : UText.Buf.buf -> UText.t
  val contents_string : UText.Buf.buf -> UText.ustring
  val length : UText.Buf.buf -> int
  val clear : UText.Buf.buf -> unit
  val reset : UText.Buf.buf -> unit
  val add_char : UText.Buf.buf -> UChar.t -> unit
  val add_string : UText.Buf.buf -> 'UText.text -> unit
  val add_buffer : UText.Buf.buf -> UText.Buf.buf -> unit
end