# Module CamomileLibrary.Type.UText

    module UText: sig .. end

An implementation of Unicode string.
An implementation of Unicode string. Internally, it uses integer array. The semantics matches the description of UStorage.

    type mutability = [ `Immutable | `Mutable ]

Phantom type for distinguishing mutability

    type 'a text

    type utext = [ `Immutable ] text

    type ustring = [ `Mutable ] text

    type t = utext

    val utext_of_ustring : ustring -> utext

    val ustring_of_utext : utext -> ustring

    val get : 'a text -> int -> CamomileLibrary.Type.UChar.t

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

`set s i u` sets the `i`-th character in `s` to `u`.

    type index

    val look : 'a text ->
           index -> CamomileLibrary.Type.UChar.t

    val nth : 'a text -> int -> index

    val first : 'a text -> index

    val last : 'a text -> index

    val out_of_range : 'a text ->
           index -> bool

    val compare_index : 'a text ->
           index -> index -> int

    val next : 'a text ->
           index -> index

    val prev : 'a text ->
           index -> index

    val move : 'a text ->
           index -> int -> index

    val length : 'a text -> int

    val of_string : string -> utext

Conversion from Latin-1 strings.

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

    val init_ustring : int ->
           (int -> CamomileLibrary.Type.UChar.t) -> ustring

    val make : int -> CamomileLibrary.Type.UChar.t -> ustring

The semantics of these function are similar to the equivalents of string.

    val copy : ustring -> ustring

    val sub : 'a text ->
           int -> int -> 'a text

    val fill : ustring ->
           int -> int -> CamomileLibrary.Type.UChar.t -> unit

    val blit : 'a text ->
           int -> ustring -> int -> int -> unit

    val append : 'a text ->
           'b text -> 'a text

    val iter : (CamomileLibrary.Type.UChar.t -> unit) ->
           'a text -> unit

    val compare : 'a text ->
           'b text -> int

    module Buf: sig .. end