`sig type xstring type t = CamomileLibrary.Type.XString.xstring val get : CamomileLibrary.Type.XString.xstring -> int -> CamomileLibrary.Type.UChar.t val set : CamomileLibrary.Type.XString.xstring -> int -> CamomileLibrary.Type.UChar.t -> unit val length : CamomileLibrary.Type.XString.xstring -> int val init : int -> (int -> CamomileLibrary.Type.UChar.t) -> CamomileLibrary.Type.XString.xstring type index val look : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> CamomileLibrary.Type.UChar.t val nth : CamomileLibrary.Type.XString.xstring -> int -> CamomileLibrary.Type.XString.index val first : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index val last : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index val out_of_range : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> bool val next : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> CamomileLibrary.Type.XString.index val prev : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> CamomileLibrary.Type.XString.index val move : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> int -> CamomileLibrary.Type.XString.index val compare_index : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.index -> CamomileLibrary.Type.XString.index -> int val make : ?bufsize:int -> int -> CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.XString.xstring val clear : CamomileLibrary.Type.XString.xstring -> unit val reset : CamomileLibrary.Type.XString.xstring -> unit val copy : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.xstring val sub : CamomileLibrary.Type.XString.xstring -> int -> int -> CamomileLibrary.Type.XString.xstring val add_char : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.UChar.t -> unit val add_text : CamomileLibrary.Type.XString.xstring -> 'a CamomileLibrary.Type.UText.text -> unit val add_xstring : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.xstring -> unit val shrink : CamomileLibrary.Type.XString.xstring -> int -> unit val append : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.XString.xstring val utext_of : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.UText.t val ustring_of : CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.UText.ustring val iter : (CamomileLibrary.Type.UChar.t -> unit) -> CamomileLibrary.Type.XString.xstring -> unit val compare : CamomileLibrary.Type.XString.t -> CamomileLibrary.Type.XString.t -> int module Buf : sig type buf val create : int -> CamomileLibrary.Type.XString.Buf.buf val contents : CamomileLibrary.Type.XString.Buf.buf -> CamomileLibrary.Type.XString.t val length : CamomileLibrary.Type.XString.Buf.buf -> int val clear : CamomileLibrary.Type.XString.Buf.buf -> unit val reset : CamomileLibrary.Type.XString.Buf.buf -> unit val add_char : CamomileLibrary.Type.XString.Buf.buf -> CamomileLibrary.Type.UChar.t -> unit val add_string : CamomileLibrary.Type.XString.Buf.buf -> CamomileLibrary.Type.XString.t -> unit val add_buffer : CamomileLibrary.Type.XString.Buf.buf -> CamomileLibrary.Type.XString.Buf.buf -> unit end end`