`sig module OOChannel : sig class type ['a] obj_input_channel = object method close_in : unit -> unit method get : unit -> 'a end class type ['a] obj_output_channel = object method close_out : unit -> unit method flush : unit -> unit method put : 'a -> unit end class ['a] channel_of_stream : 'a Stream.t -> ['a] obj_input_channel val stream_of_channel : 'a #CamomileLibrary.Type.OOChannel.obj_input_channel -> 'a 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 -> 'a) -> CamomileLibrary.Type.USet.t -> 'a -> 'a val fold_range : (CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> 'a -> 'a) -> CamomileLibrary.Type.USet.t -> 'a -> '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 : 'a CamomileLibrary.Type.UMap.t val is_empty : 'a CamomileLibrary.Type.UMap.t -> bool val add : ?eq:('a -> 'a -> bool) -> CamomileLibrary.Type.UChar.t -> 'a -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val add_range : ?eq:('a -> 'a -> bool) -> CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> 'a -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val find : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a val remove : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val remove_range : CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val from : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val after : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val until : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val before : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> 'a CamomileLibrary.Type.UMap.t val mem : CamomileLibrary.Type.UChar.t -> 'a CamomileLibrary.Type.UMap.t -> bool val iter : (CamomileLibrary.Type.UChar.t -> 'a -> unit) -> 'a CamomileLibrary.Type.UMap.t -> unit val iter_range : (CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> 'a -> unit) -> 'a CamomileLibrary.Type.UMap.t -> unit val map : ?eq:('b -> 'b -> bool) -> ('a -> 'b) -> 'a CamomileLibrary.Type.UMap.t -> 'b CamomileLibrary.Type.UMap.t val mapi : ?eq:('b -> 'b -> bool) -> (CamomileLibrary.Type.UChar.t -> 'a -> 'b) -> 'a CamomileLibrary.Type.UMap.t -> 'b CamomileLibrary.Type.UMap.t val fold : (CamomileLibrary.Type.UChar.t -> 'b -> 'a -> 'a) -> 'b CamomileLibrary.Type.UMap.t -> 'a -> 'a val fold_range : (CamomileLibrary.Type.UChar.t -> CamomileLibrary.Type.UChar.t -> 'b -> 'a -> 'a) -> 'b CamomileLibrary.Type.UMap.t -> 'a -> 'a val set_to_map : CamomileLibrary.Type.USet.t -> 'a -> 'a CamomileLibrary.Type.UMap.t val domain : 'a CamomileLibrary.Type.UMap.t -> CamomileLibrary.Type.USet.t val map_to_set : ('a -> bool) -> 'a CamomileLibrary.Type.UMap.t -> CamomileLibrary.Type.USet.t val umap_of_imap : 'a IMap.t -> 'a CamomileLibrary.Type.UMap.t val imap_of_umap : 'a CamomileLibrary.Type.UMap.t -> 'a IMap.t end module UCharTbl : sig type 'a tbl type 'a t = 'a CamomileLibrary.Type.UCharTbl.tbl val get : 'a 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 : 'a 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 : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UChar.t val nth : 'a CamomileLibrary.Type.UText.text -> int -> CamomileLibrary.Type.UText.index val first : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index val last : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index val out_of_range : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> bool val compare_index : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UText.index -> int val next : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UText.index val prev : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> CamomileLibrary.Type.UText.index val move : 'a CamomileLibrary.Type.UText.text -> CamomileLibrary.Type.UText.index -> int -> CamomileLibrary.Type.UText.index val length : 'a 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 : 'a CamomileLibrary.Type.UText.text -> int -> int -> 'a CamomileLibrary.Type.UText.text val fill : CamomileLibrary.Type.UText.ustring -> int -> int -> CamomileLibrary.Type.UChar.t -> unit val blit : 'a CamomileLibrary.Type.UText.text -> int -> CamomileLibrary.Type.UText.ustring -> int -> int -> unit val append : 'a CamomileLibrary.Type.UText.text -> 'b CamomileLibrary.Type.UText.text -> 'a CamomileLibrary.Type.UText.text val iter : (CamomileLibrary.Type.UChar.t -> unit) -> 'a CamomileLibrary.Type.UText.text -> unit val compare : 'a CamomileLibrary.Type.UText.text -> 'b 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 -> 'a 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 -> 'a 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`