sig
  type t
  val get : CamomileLibrary.SubText.Type.t -> int -> CamomileLibrary.UChar.t
  val init :
    int -> (int -> CamomileLibrary.UChar.t) -> CamomileLibrary.SubText.Type.t
  val length : CamomileLibrary.SubText.Type.t -> int
  type index
  val look :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index -> CamomileLibrary.UChar.t
  val nth :
    CamomileLibrary.SubText.Type.t ->
    int -> CamomileLibrary.SubText.Type.index
  val first :
    CamomileLibrary.SubText.Type.t -> CamomileLibrary.SubText.Type.index
  val last :
    CamomileLibrary.SubText.Type.t -> CamomileLibrary.SubText.Type.index
  val next :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index -> CamomileLibrary.SubText.Type.index
  val prev :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index -> CamomileLibrary.SubText.Type.index
  val move :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index ->
    int -> CamomileLibrary.SubText.Type.index
  val out_of_range :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index -> bool
  val compare_index :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index ->
    CamomileLibrary.SubText.Type.index -> int
  val iter :
    (CamomileLibrary.UChar.t -> unit) ->
    CamomileLibrary.SubText.Type.t -> unit
  val compare :
    CamomileLibrary.SubText.Type.t -> CamomileLibrary.SubText.Type.t -> int
  module Buf :
    sig
      type buf
      val create : int -> CamomileLibrary.SubText.Type.Buf.buf
      val contents :
        CamomileLibrary.SubText.Type.Buf.buf ->
        CamomileLibrary.SubText.Type.t
      val clear : CamomileLibrary.SubText.Type.Buf.buf -> unit
      val reset : CamomileLibrary.SubText.Type.Buf.buf -> unit
      val add_char :
        CamomileLibrary.SubText.Type.Buf.buf ->
        CamomileLibrary.UChar.t -> unit
      val add_string :
        CamomileLibrary.SubText.Type.Buf.buf ->
        CamomileLibrary.SubText.Type.t -> unit
      val add_buffer :
        CamomileLibrary.SubText.Type.Buf.buf ->
        CamomileLibrary.SubText.Type.Buf.buf -> unit
    end
  type ur_text
  type ur_index
  val refer :
    CamomileLibrary.SubText.Type.ur_text ->
    CamomileLibrary.SubText.Type.ur_index ->
    CamomileLibrary.SubText.Type.ur_index -> CamomileLibrary.SubText.Type.t
  val excerpt :
    CamomileLibrary.SubText.Type.t -> CamomileLibrary.SubText.Type.ur_text
  val context :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.ur_text *
    CamomileLibrary.SubText.Type.ur_index *
    CamomileLibrary.SubText.Type.ur_index
  val ur_index_of :
    CamomileLibrary.SubText.Type.t ->
    CamomileLibrary.SubText.Type.index ->
    CamomileLibrary.SubText.Type.ur_index
end