# Module CamomileLibrary.Type.XString

    module XString: sig .. end

eXtensible Unicode string. The semantics matches the description of UStorage. The detail may be going to change.

    type xstring

    type t = xstring

    val get : xstring -> int -> CamomileLibrary.Type.UChar.t

    val set : xstring ->
           int -> CamomileLibrary.Type.UChar.t -> unit

    val length : xstring -> int

    val init : int ->
           (int -> CamomileLibrary.Type.UChar.t) -> xstring

    type index

    val look : xstring ->
           index -> CamomileLibrary.Type.UChar.t

    val nth : xstring ->
           int -> index

    val first : xstring -> index

    val last : xstring -> index

    val out_of_range : xstring ->
           index -> bool

    val next : xstring ->
           index -> index

    val prev : xstring ->
           index -> index

    val move : xstring ->
           index ->
           int -> index

    val compare_index : xstring ->
           index ->
           index -> int

    val make : ?bufsize:int ->
           int -> CamomileLibrary.Type.UChar.t -> xstring

    val clear : xstring -> unit

    val reset : xstring -> unit

    val copy : xstring -> xstring

    val sub : xstring ->
           int -> int -> xstring

    val add_char : xstring -> CamomileLibrary.Type.UChar.t -> unit

    val add_text : xstring ->
           'a CamomileLibrary.Type.UText.text -> unit

    val add_xstring : xstring ->
           xstring -> unit

    val shrink : xstring -> int -> unit

    val append : xstring ->
           xstring -> xstring

    val utext_of : xstring -> CamomileLibrary.Type.UText.t

    val ustring_of : xstring -> CamomileLibrary.Type.UText.ustring

    val iter : (CamomileLibrary.Type.UChar.t -> unit) ->
           xstring -> unit

    val compare : t -> t -> int

    module Buf: sig .. end