sig   module OOChannel :     sig       class type ['a] obj_input_channel =         object method close_in : unit -> unit method get : unit -> 'end       class type ['a] obj_output_channel =         object           method close_out : unit -> unit           method flush : unit -> unit           method put : '-> unit         end       class ['a] channel_of_stream : 'Stream.t -> ['a] obj_input_channel       val stream_of_channel :         '#CamomileLibrary.Type.OOChannel.obj_input_channel -> 'Stream.t       class type char_input_channel =         object           method close_in : unit -> unit           method input : string -> int -> int -> int         end       class type char_output_channel =         object           method close_out : unit -> unit           method flush : unit -> unit           method output : string -> int -> int -> int         end       class char_input_channel_of :         char #CamomileLibrary.Type.OOChannel.obj_input_channel ->         char_input_channel       class char_obj_input_channel_of :         CamomileLibrary.Type.OOChannel.char_input_channel ->         [char] obj_input_channel       class char_output_channel_of :         char #CamomileLibrary.Type.OOChannel.obj_output_channel ->         char_output_channel       class char_obj_output_channel_of :         CamomileLibrary.Type.OOChannel.char_output_channel ->         [char] obj_output_channel       class of_in_channel : Pervasives.in_channel -> char_input_channel       class of_out_channel : Pervasives.out_channel -> char_output_channel     end   module UChar :     sig       type t       exception Out_of_range       val char_of : CamomileLibrary.Type.UChar.t -> char       val of_char : char -> CamomileLibrary.Type.UChar.t       val code : CamomileLibrary.Type.UChar.t -> int       val chr : int -> CamomileLibrary.Type.UChar.t       external uint_code : CamomileLibrary.Type.UChar.t -> int = "%identity"       val chr_of_uint : int -> CamomileLibrary.Type.UChar.t       val eq :         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> bool       val compare :         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> int       type uchar = CamomileLibrary.Type.UChar.t       val int_of : CamomileLibrary.Type.UChar.uchar -> int       val of_int : int -> CamomileLibrary.Type.UChar.uchar     end   module USet :     sig       type t       val empty : CamomileLibrary.Type.USet.t       val is_empty : CamomileLibrary.Type.USet.t -> bool       val mem :         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.USet.t -> bool       val add :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val add_range :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val singleton :         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.USet.t       val remove :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val remove_range :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val union :         CamomileLibrary.Type.USet.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val inter :         CamomileLibrary.Type.USet.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val diff :         CamomileLibrary.Type.USet.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val compl : CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val compare :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t -> int       val equal :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t -> bool       val subset :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t -> bool       val from :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val after :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val until :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val before :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.USet.t -> unit       val iter_range :         (CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.USet.t -> unit       val fold :         (CamomileLibrary.Type.UChar.t -> '-> 'a) ->         CamomileLibrary.Type.USet.t -> '-> 'a       val fold_range :         (CamomileLibrary.Type.UChar.t ->          CamomileLibrary.Type.UChar.t -> '-> 'a) ->         CamomileLibrary.Type.USet.t -> '-> 'a       val for_all :         (CamomileLibrary.Type.UChar.t -> bool) ->         CamomileLibrary.Type.USet.t -> bool       val exists :         (CamomileLibrary.Type.UChar.t -> bool) ->         CamomileLibrary.Type.USet.t -> bool       val filter :         (CamomileLibrary.Type.UChar.t -> bool) ->         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.USet.t       val partition :         (CamomileLibrary.Type.UChar.t -> bool) ->         CamomileLibrary.Type.USet.t ->         CamomileLibrary.Type.USet.t * CamomileLibrary.Type.USet.t       val cardinal : CamomileLibrary.Type.USet.t -> int       val elements :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.UChar.t list       val ranges :         CamomileLibrary.Type.USet.t ->         (CamomileLibrary.Type.UChar.t * CamomileLibrary.Type.UChar.t) list       val min_elt :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.UChar.t       val max_elt :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.UChar.t       val choose :         CamomileLibrary.Type.USet.t -> CamomileLibrary.Type.UChar.t       val uset_of_iset : ISet.t -> CamomileLibrary.Type.USet.t       val iset_of_uset : CamomileLibrary.Type.USet.t -> ISet.t     end   module UMap :     sig       type 'a t       val empty : 'CamomileLibrary.Type.UMap.t       val is_empty : 'CamomileLibrary.Type.UMap.t -> bool       val add :         ?eq:('-> '-> bool) ->         CamomileLibrary.Type.UChar.t ->         '->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val add_range :         ?eq:('-> '-> bool) ->         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.UChar.t ->         '->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val find :         CamomileLibrary.Type.UChar.t -> 'CamomileLibrary.Type.UMap.t -> 'a       val remove :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val remove_range :         CamomileLibrary.Type.UChar.t ->         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val from :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val after :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val until :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val before :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val mem :         CamomileLibrary.Type.UChar.t ->         'CamomileLibrary.Type.UMap.t -> bool       val iter :         (CamomileLibrary.Type.UChar.t -> '-> unit) ->         'CamomileLibrary.Type.UMap.t -> unit       val iter_range :         (CamomileLibrary.Type.UChar.t ->          CamomileLibrary.Type.UChar.t -> '-> unit) ->         'CamomileLibrary.Type.UMap.t -> unit       val map :         ?eq:('-> '-> bool) ->         ('-> 'b) ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val mapi :         ?eq:('-> '-> bool) ->         (CamomileLibrary.Type.UChar.t -> '-> 'b) ->         'CamomileLibrary.Type.UMap.t -> 'CamomileLibrary.Type.UMap.t       val fold :         (CamomileLibrary.Type.UChar.t -> '-> '-> 'a) ->         'CamomileLibrary.Type.UMap.t -> '-> 'a       val fold_range :         (CamomileLibrary.Type.UChar.t ->          CamomileLibrary.Type.UChar.t -> '-> '-> 'a) ->         'CamomileLibrary.Type.UMap.t -> '-> 'a       val set_to_map :         CamomileLibrary.Type.USet.t -> '-> 'CamomileLibrary.Type.UMap.t       val domain :         'CamomileLibrary.Type.UMap.t -> CamomileLibrary.Type.USet.t       val map_to_set :         ('-> bool) ->         'CamomileLibrary.Type.UMap.t -> CamomileLibrary.Type.USet.t       val umap_of_imap : 'IMap.t -> 'CamomileLibrary.Type.UMap.t       val imap_of_umap : 'CamomileLibrary.Type.UMap.t -> 'IMap.t     end   module UCharTbl :     sig       type 'a tbl       type 'a t = 'CamomileLibrary.Type.UCharTbl.tbl       val get :         'CamomileLibrary.Type.UCharTbl.tbl ->         CamomileLibrary.Type.UChar.t -> 'a       module type Type =         sig           type elt           type t =               CamomileLibrary.Type.UCharTbl.Type.elt               CamomileLibrary.Type.UCharTbl.tbl           val get :             CamomileLibrary.Type.UCharTbl.Type.elt             CamomileLibrary.Type.UCharTbl.tbl ->             CamomileLibrary.Type.UChar.t ->             CamomileLibrary.Type.UCharTbl.Type.elt           val of_map :             CamomileLibrary.Type.UCharTbl.Type.elt ->             CamomileLibrary.Type.UCharTbl.Type.elt             CamomileLibrary.Type.UMap.t ->             CamomileLibrary.Type.UCharTbl.Type.t         end       module Make :         functor (H : Hashtbl.HashedType->           sig             type elt = H.t             type t = elt tbl             val get : elt tbl -> UChar.t -> elt             val of_map : elt -> elt UMap.t -> t           end       module Bool :         sig           type t           val get :             CamomileLibrary.Type.UCharTbl.Bool.t ->             CamomileLibrary.Type.UChar.t -> bool           val of_set :             CamomileLibrary.Type.USet.t ->             CamomileLibrary.Type.UCharTbl.Bool.t         end       module Bits :         sig           type t           val of_map :             int ->             int CamomileLibrary.Type.UMap.t ->             CamomileLibrary.Type.UCharTbl.Bits.t           val get :             CamomileLibrary.Type.UCharTbl.Bits.t ->             CamomileLibrary.Type.UChar.t -> int         end       module Bytes :         sig           type t           val of_map :             int ->             int CamomileLibrary.Type.UMap.t ->             CamomileLibrary.Type.UCharTbl.Bytes.t           val get :             CamomileLibrary.Type.UCharTbl.Bytes.t ->             CamomileLibrary.Type.UChar.t -> int         end       module Char :         sig           type t           val of_map :             char ->             char CamomileLibrary.Type.UMap.t ->             CamomileLibrary.Type.UCharTbl.Char.t           val get :             CamomileLibrary.Type.UCharTbl.Char.t ->             CamomileLibrary.Type.UChar.t -> char         end     end   module UnicodeString :     sig       module type Type =         sig           type t           val get :             CamomileLibrary.Type.UnicodeString.Type.t ->             int -> CamomileLibrary.Type.UChar.t           val init :             int ->             (int -> CamomileLibrary.Type.UChar.t) ->             CamomileLibrary.Type.UnicodeString.Type.t           val length : CamomileLibrary.Type.UnicodeString.Type.t -> int           type index           val look :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index ->             CamomileLibrary.Type.UChar.t           val nth :             CamomileLibrary.Type.UnicodeString.Type.t ->             int -> CamomileLibrary.Type.UnicodeString.Type.index           val next :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index ->             CamomileLibrary.Type.UnicodeString.Type.index           val prev :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index ->             CamomileLibrary.Type.UnicodeString.Type.index           val out_of_range :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index -> bool           val iter :             (CamomileLibrary.Type.UChar.t -> unit) ->             CamomileLibrary.Type.UnicodeString.Type.t -> unit           val compare :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.t -> int           val first :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index           val last :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index           val move :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index ->             int -> CamomileLibrary.Type.UnicodeString.Type.index           val compare_index :             CamomileLibrary.Type.UnicodeString.Type.t ->             CamomileLibrary.Type.UnicodeString.Type.index ->             CamomileLibrary.Type.UnicodeString.Type.index -> int           module Buf :             sig               type buf               val create :                 int -> CamomileLibrary.Type.UnicodeString.Type.Buf.buf               val contents :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf ->                 CamomileLibrary.Type.UnicodeString.Type.t               val clear :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf -> unit               val reset :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf -> unit               val add_char :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf ->                 CamomileLibrary.Type.UChar.t -> unit               val add_string :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf ->                 CamomileLibrary.Type.UnicodeString.Type.t -> unit               val add_buffer :                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf ->                 CamomileLibrary.Type.UnicodeString.Type.Buf.buf -> unit             end         end     end   module UText :     sig       type mutability = [ `Immutable | `Mutable ]       type 'a text       type utext = [ `Immutable ] CamomileLibrary.Type.UText.text       type ustring = [ `Mutable ] CamomileLibrary.Type.UText.text       type t = CamomileLibrary.Type.UText.utext       val utext_of_ustring :         CamomileLibrary.Type.UText.ustring ->         CamomileLibrary.Type.UText.utext       val ustring_of_utext :         CamomileLibrary.Type.UText.utext ->         CamomileLibrary.Type.UText.ustring       val get :         'CamomileLibrary.Type.UText.text ->         int -> CamomileLibrary.Type.UChar.t       val set :         CamomileLibrary.Type.UText.ustring ->         int -> CamomileLibrary.Type.UChar.t -> unit       type index       val look :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UChar.t       val nth :         'CamomileLibrary.Type.UText.text ->         int -> CamomileLibrary.Type.UText.index       val first :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index       val last :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index       val out_of_range :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index -> bool       val compare_index :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index ->         CamomileLibrary.Type.UText.index -> int       val next :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UText.index       val prev :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UText.index       val move :         'CamomileLibrary.Type.UText.text ->         CamomileLibrary.Type.UText.index ->         int -> CamomileLibrary.Type.UText.index       val length : 'CamomileLibrary.Type.UText.text -> int       val of_string : string -> CamomileLibrary.Type.UText.utext       val init :         int ->         (int -> CamomileLibrary.Type.UChar.t) ->         CamomileLibrary.Type.UText.utext       val init_ustring :         int ->         (int -> CamomileLibrary.Type.UChar.t) ->         CamomileLibrary.Type.UText.ustring       val make :         int ->         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UText.ustring       val copy :         CamomileLibrary.Type.UText.ustring ->         CamomileLibrary.Type.UText.ustring       val sub :         'CamomileLibrary.Type.UText.text ->         int -> int -> 'CamomileLibrary.Type.UText.text       val fill :         CamomileLibrary.Type.UText.ustring ->         int -> int -> CamomileLibrary.Type.UChar.t -> unit       val blit :         'CamomileLibrary.Type.UText.text ->         int -> CamomileLibrary.Type.UText.ustring -> int -> int -> unit       val append :         'CamomileLibrary.Type.UText.text ->         'CamomileLibrary.Type.UText.text ->         'CamomileLibrary.Type.UText.text       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         'CamomileLibrary.Type.UText.text -> unit       val compare :         'CamomileLibrary.Type.UText.text ->         'CamomileLibrary.Type.UText.text -> int       module Buf :         sig           type buf           val create : int -> CamomileLibrary.Type.UText.Buf.buf           val contents :             CamomileLibrary.Type.UText.Buf.buf ->             CamomileLibrary.Type.UText.t           val contents_string :             CamomileLibrary.Type.UText.Buf.buf ->             CamomileLibrary.Type.UText.ustring           val length : CamomileLibrary.Type.UText.Buf.buf -> int           val clear : CamomileLibrary.Type.UText.Buf.buf -> unit           val reset : CamomileLibrary.Type.UText.Buf.buf -> unit           val add_char :             CamomileLibrary.Type.UText.Buf.buf ->             CamomileLibrary.Type.UChar.t -> unit           val add_string :             CamomileLibrary.Type.UText.Buf.buf ->             'CamomileLibrary.Type.UText.text -> unit           val add_buffer :             CamomileLibrary.Type.UText.Buf.buf ->             CamomileLibrary.Type.UText.Buf.buf -> unit         end     end   module XString :     sig       type xstring       type t = CamomileLibrary.Type.XString.xstring       val get :         CamomileLibrary.Type.XString.xstring ->         int -> CamomileLibrary.Type.UChar.t       val set :         CamomileLibrary.Type.XString.xstring ->         int -> CamomileLibrary.Type.UChar.t -> unit       val length : CamomileLibrary.Type.XString.xstring -> int       val init :         int ->         (int -> CamomileLibrary.Type.UChar.t) ->         CamomileLibrary.Type.XString.xstring       type index       val look :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index -> CamomileLibrary.Type.UChar.t       val nth :         CamomileLibrary.Type.XString.xstring ->         int -> CamomileLibrary.Type.XString.index       val first :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index       val last :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index       val out_of_range :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index -> bool       val next :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index ->         CamomileLibrary.Type.XString.index       val prev :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index ->         CamomileLibrary.Type.XString.index       val move :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index ->         int -> CamomileLibrary.Type.XString.index       val compare_index :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.index ->         CamomileLibrary.Type.XString.index -> int       val make :         ?bufsize:int ->         int ->         CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.XString.xstring       val clear : CamomileLibrary.Type.XString.xstring -> unit       val reset : CamomileLibrary.Type.XString.xstring -> unit       val copy :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.xstring       val sub :         CamomileLibrary.Type.XString.xstring ->         int -> int -> CamomileLibrary.Type.XString.xstring       val add_char :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.UChar.t -> unit       val add_text :         CamomileLibrary.Type.XString.xstring ->         'CamomileLibrary.Type.UText.text -> unit       val add_xstring :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.xstring -> unit       val shrink : CamomileLibrary.Type.XString.xstring -> int -> unit       val append :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.XString.xstring       val utext_of :         CamomileLibrary.Type.XString.xstring -> CamomileLibrary.Type.UText.t       val ustring_of :         CamomileLibrary.Type.XString.xstring ->         CamomileLibrary.Type.UText.ustring       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.XString.xstring -> unit       val compare :         CamomileLibrary.Type.XString.t ->         CamomileLibrary.Type.XString.t -> int       module Buf :         sig           type buf           val create : int -> CamomileLibrary.Type.XString.Buf.buf           val contents :             CamomileLibrary.Type.XString.Buf.buf ->             CamomileLibrary.Type.XString.t           val length : CamomileLibrary.Type.XString.Buf.buf -> int           val clear : CamomileLibrary.Type.XString.Buf.buf -> unit           val reset : CamomileLibrary.Type.XString.Buf.buf -> unit           val add_char :             CamomileLibrary.Type.XString.Buf.buf ->             CamomileLibrary.Type.UChar.t -> unit           val add_string :             CamomileLibrary.Type.XString.Buf.buf ->             CamomileLibrary.Type.XString.t -> unit           val add_buffer :             CamomileLibrary.Type.XString.Buf.buf ->             CamomileLibrary.Type.XString.Buf.buf -> unit         end     end   module SubText :     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   module ULine :     sig       type separator = [ `CR | `CRLF | `LF | `LS | `NEL | `PS ]       class input :         CamomileLibrary.Type.ULine.separator ->         CamomileLibrary.Type.UChar.t         #CamomileLibrary.Type.OOChannel.obj_input_channel ->         [CamomileLibrary.Type.UChar.t] OOChannel.obj_input_channel       class output :         CamomileLibrary.Type.ULine.separator ->         CamomileLibrary.Type.UChar.t         #CamomileLibrary.Type.OOChannel.obj_output_channel ->         [CamomileLibrary.Type.UChar.t] OOChannel.obj_output_channel       module type Type =         sig           type text           class input_line :             CamomileLibrary.Type.UChar.t             #CamomileLibrary.Type.OOChannel.obj_input_channel ->             [CamomileLibrary.Type.ULine.Type.text]             OOChannel.obj_input_channel           class output_line :             ?sp:CamomileLibrary.Type.ULine.separator ->             CamomileLibrary.Type.UChar.t             #CamomileLibrary.Type.OOChannel.obj_output_channel ->             [CamomileLibrary.Type.ULine.Type.text]             OOChannel.obj_output_channel         end       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             class input_line :               UChar.t #OOChannel.obj_input_channel ->               [text] OOChannel.obj_input_channel             class output_line :               ?sp:separator ->               UChar.t #OOChannel.obj_output_channel ->               [text] OOChannel.obj_output_channel           end     end   module Locale :     sig       type t = string       val read :         string -> string -> (Pervasives.in_channel -> 'a) -> string -> 'a       val contain : string -> string -> bool     end   module CharEncoding : CharEncoding.Interface   module UTF8 :     sig       type t = string       exception Malformed_code       val validate : CamomileLibrary.Type.UTF8.t -> unit       val get :         CamomileLibrary.Type.UTF8.t -> int -> CamomileLibrary.Type.UChar.t       val init :         int ->         (int -> CamomileLibrary.Type.UChar.t) -> CamomileLibrary.Type.UTF8.t       val length : CamomileLibrary.Type.UTF8.t -> int       type index = int       val nth :         CamomileLibrary.Type.UTF8.t -> int -> CamomileLibrary.Type.UTF8.index       val first :         CamomileLibrary.Type.UTF8.t -> CamomileLibrary.Type.UTF8.index       val last :         CamomileLibrary.Type.UTF8.t -> CamomileLibrary.Type.UTF8.index       val look :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index -> CamomileLibrary.Type.UChar.t       val out_of_range :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index -> bool       val compare_index :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index ->         CamomileLibrary.Type.UTF8.index -> int       val next :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index -> CamomileLibrary.Type.UTF8.index       val prev :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index -> CamomileLibrary.Type.UTF8.index       val move :         CamomileLibrary.Type.UTF8.t ->         CamomileLibrary.Type.UTF8.index ->         int -> CamomileLibrary.Type.UTF8.index       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.UTF8.t -> unit       val compare :         CamomileLibrary.Type.UTF8.t -> CamomileLibrary.Type.UTF8.t -> int       module Buf :         sig           type buf = Buffer.t           val create : int -> CamomileLibrary.Type.UTF8.Buf.buf           val contents :             CamomileLibrary.Type.UTF8.Buf.buf -> CamomileLibrary.Type.UTF8.t           val clear : CamomileLibrary.Type.UTF8.Buf.buf -> unit           val reset : CamomileLibrary.Type.UTF8.Buf.buf -> unit           val add_char :             CamomileLibrary.Type.UTF8.Buf.buf ->             CamomileLibrary.Type.UChar.t -> unit           val add_string :             CamomileLibrary.Type.UTF8.Buf.buf ->             CamomileLibrary.Type.UTF8.t -> unit           val add_buffer :             CamomileLibrary.Type.UTF8.Buf.buf ->             CamomileLibrary.Type.UTF8.Buf.buf -> unit         end     end   module UTF16 :     sig       type t =           (int, Bigarray.int16_unsigned_elt, Bigarray.c_layout)           Bigarray.Array1.t       exception Malformed_code       val validate : CamomileLibrary.Type.UTF16.t -> unit       val get :         CamomileLibrary.Type.UTF16.t -> int -> CamomileLibrary.Type.UChar.t       exception Out_of_range       val init :         int ->         (int -> CamomileLibrary.Type.UChar.t) -> CamomileLibrary.Type.UTF16.t       val length : CamomileLibrary.Type.UTF16.t -> int       type index = int       val nth :         CamomileLibrary.Type.UTF16.t ->         int -> CamomileLibrary.Type.UTF16.index       val first :         CamomileLibrary.Type.UTF16.t -> CamomileLibrary.Type.UTF16.index       val last :         CamomileLibrary.Type.UTF16.t -> CamomileLibrary.Type.UTF16.index       val look :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index -> CamomileLibrary.Type.UChar.t       val out_of_range :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index -> bool       val compare_index :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index ->         CamomileLibrary.Type.UTF16.index -> int       val next :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index -> CamomileLibrary.Type.UTF16.index       val prev :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index -> CamomileLibrary.Type.UTF16.index       val move :         CamomileLibrary.Type.UTF16.t ->         CamomileLibrary.Type.UTF16.index ->         int -> CamomileLibrary.Type.UTF16.index       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.UTF16.t -> unit       val compare :         CamomileLibrary.Type.UTF16.t -> CamomileLibrary.Type.UTF16.t -> int       module Buf :         sig           type buf           val create : int -> CamomileLibrary.Type.UTF16.Buf.buf           val contents :             CamomileLibrary.Type.UTF16.Buf.buf ->             CamomileLibrary.Type.UTF16.t           val clear : CamomileLibrary.Type.UTF16.Buf.buf -> unit           val reset : CamomileLibrary.Type.UTF16.Buf.buf -> unit           val add_char :             CamomileLibrary.Type.UTF16.Buf.buf ->             CamomileLibrary.Type.UChar.t -> unit           val add_string :             CamomileLibrary.Type.UTF16.Buf.buf ->             CamomileLibrary.Type.UTF16.t -> unit           val add_buffer :             CamomileLibrary.Type.UTF16.Buf.buf ->             CamomileLibrary.Type.UTF16.Buf.buf -> unit         end     end   module UCS4 :     sig       type t =           (int32, Bigarray.int32_elt, Bigarray.c_layout) Bigarray.Array1.t       exception Malformed_code       val validate : CamomileLibrary.Type.UCS4.t -> unit       val get :         CamomileLibrary.Type.UCS4.t -> int -> CamomileLibrary.Type.UChar.t       val init :         int ->         (int -> CamomileLibrary.Type.UChar.t) -> CamomileLibrary.Type.UCS4.t       val length : CamomileLibrary.Type.UCS4.t -> int       type index = int       val nth :         CamomileLibrary.Type.UCS4.t -> int -> CamomileLibrary.Type.UCS4.index       val first :         CamomileLibrary.Type.UCS4.t -> CamomileLibrary.Type.UCS4.index       val last :         CamomileLibrary.Type.UCS4.t -> CamomileLibrary.Type.UCS4.index       val look :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index -> CamomileLibrary.Type.UChar.t       val out_of_range :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index -> bool       val compare_index :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index ->         CamomileLibrary.Type.UCS4.index -> int       val next :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index -> CamomileLibrary.Type.UCS4.index       val prev :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index -> CamomileLibrary.Type.UCS4.index       val move :         CamomileLibrary.Type.UCS4.t ->         CamomileLibrary.Type.UCS4.index ->         int -> CamomileLibrary.Type.UCS4.index       val iter :         (CamomileLibrary.Type.UChar.t -> unit) ->         CamomileLibrary.Type.UCS4.t -> unit       val compare :         CamomileLibrary.Type.UCS4.t -> CamomileLibrary.Type.UCS4.t -> int       module Buf :         sig           type buf           val create : int -> CamomileLibrary.Type.UCS4.Buf.buf           val contents :             CamomileLibrary.Type.UCS4.Buf.buf -> CamomileLibrary.Type.UCS4.t           val clear : CamomileLibrary.Type.UCS4.Buf.buf -> unit           val reset : CamomileLibrary.Type.UCS4.Buf.buf -> unit           val add_char :             CamomileLibrary.Type.UCS4.Buf.buf ->             CamomileLibrary.Type.UChar.t -> unit           val add_string :             CamomileLibrary.Type.UCS4.Buf.buf ->             CamomileLibrary.Type.UCS4.t -> unit           val add_buffer :             CamomileLibrary.Type.UCS4.Buf.buf ->             CamomileLibrary.Type.UCS4.Buf.buf -> unit         end     end   module UPervasives :     sig       type uchar = CamomileLibrary.Type.UChar.t       val int_of_uchar : CamomileLibrary.Type.UPervasives.uchar -> int       val uchar_of_int : int -> CamomileLibrary.Type.UPervasives.uchar       val escaped_uchar : CamomileLibrary.Type.UPervasives.uchar -> string       val escaped_utf8 : string -> string       val printer_utf8 : Format.formatter -> string -> unit       val printer_uchar :         Format.formatter -> CamomileLibrary.Type.UPervasives.uchar -> unit     end   module URe :     sig       type regexp =           [ `After of CamomileLibrary.Type.URe.regexp           | `Alt of               CamomileLibrary.Type.URe.regexp *               CamomileLibrary.Type.URe.regexp           | `Before of CamomileLibrary.Type.URe.regexp           | `BoS           | `EoS           | `Epsilon           | `Group of CamomileLibrary.Type.URe.regexp           | `OneChar           | `Rep of CamomileLibrary.Type.URe.regexp           | `Repn of CamomileLibrary.Type.URe.regexp * int * int option           | `Seq of               CamomileLibrary.Type.URe.regexp *               CamomileLibrary.Type.URe.regexp           | `Set of CamomileLibrary.Type.USet.t           | `String of CamomileLibrary.Type.UChar.t list ]       type match_semantics = [ `First | `Longest | `Shortest ]       val no_group :         CamomileLibrary.Type.URe.regexp -> CamomileLibrary.Type.URe.regexp       module type Type =         sig           type text           type index           type compiled_regexp           module SubText :             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               type ur_index = 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           val compile :             CamomileLibrary.Type.URe.regexp ->             CamomileLibrary.Type.URe.Type.compiled_regexp           val regexp_match :             ?sem:CamomileLibrary.Type.URe.match_semantics ->             CamomileLibrary.Type.URe.Type.compiled_regexp ->             CamomileLibrary.Type.URe.Type.text ->             CamomileLibrary.Type.URe.Type.index ->             CamomileLibrary.Type.URe.Type.SubText.t option array option           val string_match :             CamomileLibrary.Type.URe.Type.compiled_regexp ->             CamomileLibrary.Type.URe.Type.text ->             CamomileLibrary.Type.URe.Type.index -> bool           val search_forward :             ?sem:CamomileLibrary.Type.URe.match_semantics ->             CamomileLibrary.Type.URe.Type.compiled_regexp ->             CamomileLibrary.Type.URe.Type.text ->             CamomileLibrary.Type.URe.Type.index ->             CamomileLibrary.Type.URe.Type.SubText.t option array option         end       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             type index = Text.index             type compiled_regexp             module SubText :               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                 type ur_index = 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             val compile : regexp -> compiled_regexp             val regexp_match :               ?sem:match_semantics ->               compiled_regexp ->               text -> index -> SubText.t option array option             val string_match : compiled_regexp -> text -> index -> bool             val search_forward :               ?sem:match_semantics ->               compiled_regexp ->               text -> index -> SubText.t option array option           end     end   module UCharInfo : UCharInfo.Type   module UNF :     sig       module type Type = UNF.Type       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             class nfd :               UChar.t #OOChannel.obj_output_channel ->               [UChar.t] OOChannel.obj_output_channel             class nfc :               UChar.t #OOChannel.obj_output_channel ->               [UChar.t] OOChannel.obj_output_channel             class nfkd :               UChar.t #OOChannel.obj_output_channel ->               [UChar.t] OOChannel.obj_output_channel             class nfkc :               UChar.t #OOChannel.obj_output_channel ->               [UChar.t] OOChannel.obj_output_channel             val nfd : text -> text             val nfkd : text -> text             val nfc : text -> text             val nfkc : text -> text             module NFCBuf :               sig                 type buf                 val create : int -> buf                 val contents : buf -> text                 val clear : buf -> unit                 val reset : buf -> unit                 val add_char : buf -> UChar.t -> unit                 val add_string : buf -> text -> unit                 val add_buffer : buf -> buf -> unit               end             val nfc_append : text -> text -> text             val put_nfd : XString.t -> text -> unit             val put_nfkd : XString.t -> text -> unit             val put_nfc : XString.t -> text -> unit             val put_nfkc : XString.t -> text -> unit             type index = Text.index             val nfd_inc :               text ->               index -> ([ `Inc of UChar.t list * index * 'a lazy_t ] as 'a)             val canon_compare : text -> text -> int             val nfd_decompose : UChar.t -> UChar.t list             val nfkd_decompose : UChar.t -> UChar.t list           end     end   module UCol :     sig       type variable_option =           [ `Blanked | `Non_ignorable | `Shift_Trimmed | `Shifted ]       type precision = [ `Primary | `Quaternary | `Secondary | `Tertiary ]       module type Type = UCol.Type       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             type index = Text.index             val compare :               ?locale:string ->               ?prec:UCol.precision ->               ?variable:UCol.variable_option -> text -> text -> int             val sort_key :               ?locale:string ->               ?prec:UCol.precision ->               ?variable:UCol.variable_option -> text -> string             val compare_with_key :               ?locale:string ->               ?prec:UCol.precision ->               ?variable:UCol.variable_option -> string -> text -> int             val search_with_key :               ?locale:string ->               ?prec:UCol.precision ->               ?variable:UCol.variable_option ->               string -> text -> index -> index * index             val search :               ?locale:string ->               ?prec:UCol.precision ->               ?variable:UCol.variable_option ->               text -> text -> index -> index * index           end     end   module CaseMap :     sig       module type Type = CaseMap.Type       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             val lowercase : ?locale:string -> text -> text             val uppercase : ?locale:string -> text -> text             val titlecase : ?locale:string -> text -> text             val casefolding : text -> text             val compare_caseless : text -> text -> int           end     end   module UReStr : UReStr.Interface   module StringPrep :     sig       module type Type = StringPrep.Type       module Make :         functor (Text : UnicodeString.Type->           sig             type text = Text.t             exception Prohibited of UChar.t             exception Bad_bidi             type profile =                 [ `Iscsi                 | `Mib                 | `Nameprep                 | `Nodeprep                 | `Resourceprep                 | `Saslprep                 | `Trace ]             val stringprep : profile -> text -> text           end     end end