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