# Module CamomileLibrary.UReStr.Interface.Type.SubText

    module SubText: CamomileLibrary.SubText.Type  with type ur_text = text and type ur_index = index

    type t

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

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

    val length : t -> int

    type index

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

    val nth : t -> int -> index

    val first : t -> index

    val last : t -> index

    val next : t ->
           index -> index

    val prev : t ->
           index -> index

    val move : t ->
           index ->
           int -> index

    val out_of_range : t -> index -> bool

    val compare_index : t ->
           index ->
           index -> int

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

    val compare : t -> t -> int

    module Buf: sig .. end

    type ur_text

The type of original texts.

    type ur_index

The type of indexes of original texts.

    val refer : ur_text ->
           ur_index ->
           ur_index -> t

`refer t i j` returns the part of `t` from `i` until `j`. The character pointed by `j` is not included in the result. If `j` is equal to `i` or located before `j`, the result is an empty string.

    val excerpt : t -> ur_text

`excerpt t` copies the contents of `t` as a new ur_text.

    val context : t ->
           ur_text *
           ur_index * ur_index

`context t` returns the tuple `(s, i, j)` such that `t = refer s i j`.

    val ur_index_of : t ->
           index -> ur_index

Conversion from indexes of sub-texts to ur_texts.