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