`sig module Config : CamomileLibrary.ConfigInt.Type module Camomile : 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 #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 #obj_input_channel -> char_input_channel class char_obj_input_channel_of : char_input_channel -> [char] obj_input_channel class char_output_channel_of : char #obj_output_channel -> char_output_channel class char_obj_output_channel_of : char_output_channel -> [char] obj_output_channel class of_in_channel : in_channel -> char_input_channel class of_out_channel : out_channel -> char_output_channel end module UChar : sig type t = CamomileLibrary.UChar.t exception Out_of_range val char_of : t -> char val of_char : char -> t val code : t -> int val chr : int -> t external uint_code : t -> int = "%identity" val chr_of_uint : int -> t val eq : t -> t -> bool val compare : t -> t -> int type uchar = t val int_of : uchar -> int val of_int : int -> uchar end module USet : sig type t = CamomileLibrary.USet.t val empty : t val is_empty : t -> bool val mem : CamomileLibrary.UChar.t -> t -> bool val add : CamomileLibrary.UChar.t -> t -> t val add_range : CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> t -> t val singleton : CamomileLibrary.UChar.t -> t val remove : CamomileLibrary.UChar.t -> t -> t val remove_range : CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> t -> t val union : t -> t -> t val inter : t -> t -> t val diff : t -> t -> t val compl : t -> t val compare : t -> t -> int val equal : t -> t -> bool val subset : t -> t -> bool val from : CamomileLibrary.UChar.t -> t -> t val after : CamomileLibrary.UChar.t -> t -> t val until : CamomileLibrary.UChar.t -> t -> t val before : CamomileLibrary.UChar.t -> t -> t val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val iter_range : (CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> unit) -> t -> unit val fold : (CamomileLibrary.UChar.t -> 'a -> 'a) -> t -> 'a -> 'a val fold_range : (CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> 'a -> 'a) -> t -> 'a -> 'a val for_all : (CamomileLibrary.UChar.t -> bool) -> t -> bool val exists : (CamomileLibrary.UChar.t -> bool) -> t -> bool val filter : (CamomileLibrary.UChar.t -> bool) -> t -> t val partition : (CamomileLibrary.UChar.t -> bool) -> t -> t * t val cardinal : t -> int val elements : t -> CamomileLibrary.UChar.t list val ranges : t -> (CamomileLibrary.UChar.t * CamomileLibrary.UChar.t) list val min_elt : t -> CamomileLibrary.UChar.t val max_elt : t -> CamomileLibrary.UChar.t val choose : t -> CamomileLibrary.UChar.t val uset_of_iset : ISet.t -> t val iset_of_uset : t -> ISet.t end module UMap : sig type 'a t = 'a CamomileLibrary.UMap.t val empty : 'a t val is_empty : 'a t -> bool val add : ?eq:('a -> 'a -> bool) -> CamomileLibrary.UChar.t -> 'a -> 'a t -> 'a t val add_range : ?eq:('a -> 'a -> bool) -> CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> 'a -> 'a t -> 'a t val find : CamomileLibrary.UChar.t -> 'a t -> 'a val remove : CamomileLibrary.UChar.t -> 'a t -> 'a t val remove_range : CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> 'a t -> 'a t val from : CamomileLibrary.UChar.t -> 'a t -> 'a t val after : CamomileLibrary.UChar.t -> 'a t -> 'a t val until : CamomileLibrary.UChar.t -> 'a t -> 'a t val before : CamomileLibrary.UChar.t -> 'a t -> 'a t val mem : CamomileLibrary.UChar.t -> 'a t -> bool val iter : (CamomileLibrary.UChar.t -> 'a -> unit) -> 'a t -> unit val iter_range : (CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> 'a -> unit) -> 'a t -> unit val map : ?eq:('b -> 'b -> bool) -> ('a -> 'b) -> 'a t -> 'b t val mapi : ?eq:('b -> 'b -> bool) -> (CamomileLibrary.UChar.t -> 'a -> 'b) -> 'a t -> 'b t val fold : (CamomileLibrary.UChar.t -> 'b -> 'a -> 'a) -> 'b t -> 'a -> 'a val fold_range : (CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t -> 'b -> 'a -> 'a) -> 'b t -> 'a -> 'a val set_to_map : CamomileLibrary.USet.t -> 'a -> 'a t val domain : 'a t -> CamomileLibrary.USet.t val map_to_set : ('a -> bool) -> 'a t -> CamomileLibrary.USet.t val umap_of_imap : 'a IMap.t -> 'a t val imap_of_umap : 'a t -> 'a IMap.t end module UCharTbl : sig type 'a tbl = 'a CamomileLibrary.UCharTbl.tbl type 'a t = 'a tbl val get : 'a tbl -> CamomileLibrary.UChar.t -> 'a module type Type = sig type elt type t = elt tbl val get : elt tbl -> CamomileLibrary.UChar.t -> elt val of_map : elt -> elt CamomileLibrary.UMap.t -> t end module Make : functor (H : Hashtbl.HashedType) -> sig type elt = H.t type t = elt tbl val get : elt tbl -> CamomileLibrary.UChar.t -> elt val of_map : elt -> elt CamomileLibrary.UMap.t -> t end module Bool : sig type t = CamomileLibrary.UCharTbl.Bool.t val get : t -> CamomileLibrary.UChar.t -> bool val of_set : CamomileLibrary.USet.t -> t end module Bits : sig type t = CamomileLibrary.UCharTbl.Bits.t val of_map : int -> int CamomileLibrary.UMap.t -> t val get : t -> CamomileLibrary.UChar.t -> int end module Bytes : sig type t = CamomileLibrary.UCharTbl.Bytes.t val of_map : int -> int CamomileLibrary.UMap.t -> t val get : t -> CamomileLibrary.UChar.t -> int end module Char : sig type t = CamomileLibrary.UCharTbl.Char.t val of_map : char -> char CamomileLibrary.UMap.t -> t val get : t -> CamomileLibrary.UChar.t -> char end end module UnicodeString : sig module type Type = sig type t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val next : t -> index -> index val prev : t -> index -> index val out_of_range : t -> index -> bool val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int val first : t -> index val last : t -> index val move : t -> index -> int -> index val compare_index : t -> index -> index -> 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 -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : buf -> buf -> unit end end end module UText : sig type mutability = [ `Immutable | `Mutable ] type 'a text = 'a CamomileLibrary.UText.text type utext = [ `Immutable ] text type ustring = [ `Mutable ] text type t = utext val utext_of_ustring : ustring -> utext val ustring_of_utext : utext -> ustring val get : 'a text -> int -> CamomileLibrary.UChar.t val set : ustring -> int -> CamomileLibrary.UChar.t -> unit type index = CamomileLibrary.UText.index val look : 'a text -> index -> CamomileLibrary.UChar.t val nth : 'a text -> int -> index val first : 'a text -> index val last : 'a text -> index val out_of_range : 'a text -> index -> bool val compare_index : 'a text -> index -> index -> int val next : 'a text -> index -> index val prev : 'a text -> index -> index val move : 'a text -> index -> int -> index val length : 'a text -> int val of_string : string -> utext val init : int -> (int -> CamomileLibrary.UChar.t) -> utext val init_ustring : int -> (int -> CamomileLibrary.UChar.t) -> ustring val make : int -> CamomileLibrary.UChar.t -> ustring val copy : ustring -> ustring val sub : 'a text -> int -> int -> 'a text val fill : ustring -> int -> int -> CamomileLibrary.UChar.t -> unit val blit : 'a text -> int -> ustring -> int -> int -> unit val append : 'a text -> 'b text -> 'a text val iter : (CamomileLibrary.UChar.t -> unit) -> 'a text -> unit val compare : 'a text -> 'b text -> int module Buf : sig type buf = CamomileLibrary.UText.Buf.buf val create : int -> buf val contents : buf -> t val contents_string : buf -> ustring val length : buf -> int val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> 'a text -> unit val add_buffer : buf -> buf -> unit end end module XString : sig type xstring = CamomileLibrary.XString.xstring type t = xstring val get : xstring -> int -> CamomileLibrary.UChar.t val set : xstring -> int -> CamomileLibrary.UChar.t -> unit val length : xstring -> int val init : int -> (int -> CamomileLibrary.UChar.t) -> xstring type index = CamomileLibrary.XString.index val look : xstring -> index -> CamomileLibrary.UChar.t val nth : xstring -> int -> index val first : xstring -> index val last : xstring -> index val out_of_range : xstring -> index -> bool val next : xstring -> index -> index val prev : xstring -> index -> index val move : xstring -> index -> int -> index val compare_index : xstring -> index -> index -> int val make : ?bufsize:int -> int -> CamomileLibrary.UChar.t -> xstring val clear : xstring -> unit val reset : xstring -> unit val copy : xstring -> xstring val sub : xstring -> int -> int -> xstring val add_char : xstring -> CamomileLibrary.UChar.t -> unit val add_text : xstring -> 'a CamomileLibrary.UText.text -> unit val add_xstring : xstring -> xstring -> unit val shrink : xstring -> int -> unit val append : xstring -> xstring -> xstring val utext_of : xstring -> CamomileLibrary.UText.t val ustring_of : xstring -> CamomileLibrary.UText.ustring val iter : (CamomileLibrary.UChar.t -> unit) -> xstring -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.XString.Buf.buf val create : int -> buf val contents : buf -> t val length : buf -> int val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : buf -> buf -> unit end end module SubText : sig module type Type = sig type t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : buf -> buf -> unit end type ur_text type ur_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 module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type t = CamomileLibrary.SubText.Make(Text).t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = CamomileLibrary.SubText.Make(Text).index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.SubText.Make(Text).Buf.buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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 : separator -> CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_input_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_input_channel class output : separator -> CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel module type Type = sig type text class input_line : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_input_channel -> [text] CamomileLibrary.OOChannel.obj_input_channel class output_line : ?sp:separator -> CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [text] CamomileLibrary.OOChannel.obj_output_channel end module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t class input_line : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_input_channel -> [text] CamomileLibrary.OOChannel.obj_input_channel class output_line : ?sp:separator -> CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [text] CamomileLibrary.OOChannel.obj_output_channel end end module Locale : sig type t = string val read : string -> string -> (in_channel -> 'a) -> string -> 'a val contain : string -> string -> bool end module CharEncoding : sig exception Malformed_code exception Out_of_range type t = CamomileLibrary.CharEncoding.Configure(Config).t val automatic : string -> t list -> t -> t val new_enc : string -> t -> unit val alias : string -> string -> unit val of_name : string -> t val name_of : t -> string val ascii : t val latin1 : t val utf8 : t val utf16 : t val utf16be : t val utf16le : t val utf32 : t val utf32be : t val utf32le : t val ucs4 : t val recode_string : in_enc:t -> out_enc:t -> string -> string class uchar_input_channel_of : t -> CamomileLibrary.OOChannel.char_input_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_input_channel class uchar_output_channel_of : t -> CamomileLibrary.OOChannel.char_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel class convert_uchar_input : t -> CamomileLibrary.UChar.t CamomileLibrary.OOChannel.obj_input_channel -> CamomileLibrary.OOChannel.char_input_channel class convert_uchar_output : t -> CamomileLibrary.UChar.t CamomileLibrary.OOChannel.obj_output_channel -> CamomileLibrary.OOChannel.char_output_channel class convert_input : in_enc:t -> out_enc:t -> CamomileLibrary.OOChannel.char_input_channel -> CamomileLibrary.OOChannel.char_input_channel class convert_output : in_enc:t -> out_enc:t -> CamomileLibrary.OOChannel.char_output_channel -> CamomileLibrary.OOChannel.char_output_channel class out_channel : t -> out_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel class in_channel : t -> in_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_input_channel val ustream_of : t -> char Stream.t -> CamomileLibrary.UChar.t Stream.t val char_stream_of : t -> CamomileLibrary.UChar.t Stream.t -> char Stream.t module type Type = sig type text val decode : t -> string -> text val encode : t -> text -> string end module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t val decode : t -> string -> text val encode : t -> text -> string end end module UTF8 : sig type t = string exception Malformed_code val validate : t -> unit val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = int val nth : t -> int -> index val first : t -> index val last : t -> index val look : t -> index -> CamomileLibrary.UChar.t val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = Buffer.t val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : 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 : t -> unit val get : t -> int -> CamomileLibrary.UChar.t exception Out_of_range val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = int val nth : t -> int -> index val first : t -> index val last : t -> index val look : t -> index -> CamomileLibrary.UChar.t val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.UTF16.Buf.buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : 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 : t -> unit val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = int val nth : t -> int -> index val first : t -> index val last : t -> index val look : t -> index -> CamomileLibrary.UChar.t val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.UCS4.Buf.buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.UChar.t -> unit val add_string : buf -> t -> unit val add_buffer : buf -> buf -> unit end end module UPervasives : sig type uchar = CamomileLibrary.UChar.t val int_of_uchar : uchar -> int val uchar_of_int : int -> uchar val escaped_uchar : uchar -> string val escaped_utf8 : string -> string val printer_utf8 : Format.formatter -> string -> unit val printer_uchar : Format.formatter -> uchar -> unit end module URe : sig type regexp = [ `After of regexp | `Alt of regexp * regexp | `Before of regexp | `BoS | `EoS | `Epsilon | `Group of regexp | `OneChar | `Rep of regexp | `Repn of regexp * int * int option | `Seq of regexp * regexp | `Set of CamomileLibrary.USet.t | `String of CamomileLibrary.UChar.t list ] type match_semantics = [ `First | `Longest | `Shortest ] val no_group : regexp -> regexp module type Type = sig type text type index type compiled_regexp module SubText : sig type t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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 module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t type index = Text.index type compiled_regexp = CamomileLibrary.URe.Make(Text).compiled_regexp module SubText : sig type t = CamomileLibrary.URe.Make(Text).SubText.t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = CamomileLibrary.URe.Make(Text).SubText.index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.URe.Make(Text).SubText.Buf.buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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 : sig type general_category_type = [ `Cc | `Cf | `Cn | `Co | `Cs | `Ll | `Lm | `Lo | `Lt | `Lu | `Mc | `Me | `Mn | `Nd | `Nl | `No | `Pc | `Pd | `Pe | `Pf | `Pi | `Po | `Ps | `Sc | `Sk | `Sm | `So | `Zl | `Zp | `Zs ] val general_category : CamomileLibrary.UChar.t -> general_category_type val load_general_category_map : unit -> general_category_type CamomileLibrary.UMap.t type character_property_type = [ `Alphabetic | `Ascii_Hex_Digit | `Bidi_Control | `Default_Ignorable_Code_Point | `Deprecated | `Diacritic | `Extender | `Grapheme_Base | `Grapheme_Extend | `Grapheme_Link | `Hex_Digit | `Hyphen | `IDS_Binary_Operator | `IDS_Trinary_Operator | `ID_Continue | `ID_Start | `Ideographic | `Logical_Order_Exception | `Lowercase | `Math | `Noncharacter_Code_Point | `Other_Alphabetic | `Other_Grapheme_Extend | `Other_Lowercase | `Other_Math | `Other_Uppercase | `Other_default_Ignorable_Code_Point | `Quotation_Mark | `Radical | `Soft_Dotted | `Terminal_Punctuation | `Unified_Ideograph | `Uppercase | `White_Space | `XID_Continue | `XID_Start ] val load_property_tbl : character_property_type -> CamomileLibrary.UCharTbl.Bool.t val load_property_tbl_by_name : string -> CamomileLibrary.UCharTbl.Bool.t val load_property_set : character_property_type -> CamomileLibrary.USet.t val load_property_set_by_name : string -> CamomileLibrary.USet.t type script_type = [ `Arabic | `Armenian | `Bengali | `Bopomofo | `Buhid | `Canadian_Aboriginal | `Cherokee | `Common | `Cyrillic | `Deseret | `Devanagari | `Ethiopic | `Georgian | `Gothic | `Greek | `Gujarati | `Gurmukhi | `Han | `Hangul | `Hanunoo | `Hebrew | `Hiragana | `Inherited | `Kannada | `Katakana | `Khmer | `Lao | `Latin | `Malayalam | `Mongolian | `Myanmar | `Ogham | `Old_Italic | `Oriya | `Runic | `Sinhala | `Syriac | `Tagalog | `Tagbanwa | `Tamil | `Telugu | `Thaana | `Thai | `Tibetan | `Yi ] val script : CamomileLibrary.UChar.t -> script_type val load_script_map : unit -> script_type CamomileLibrary.UMap.t type version_type = [ `Nc | `v1_0 | `v1_1 | `v2_0 | `v2_1 | `v3_0 | `v3_1 | `v3_2 ] val age : CamomileLibrary.UChar.t -> version_type val older : version_type -> version_type -> bool val load_to_lower1_tbl : unit -> CamomileLibrary.UChar.t CamomileLibrary.UCharTbl.t val load_to_upper1_tbl : unit -> CamomileLibrary.UChar.t CamomileLibrary.UCharTbl.t val load_to_title1_tbl : unit -> CamomileLibrary.UChar.t CamomileLibrary.UCharTbl.t type casemap_condition = [ `AfterSoftDotted | `BeforeDot | `FinalSigma | `Locale of string | `MoreAbove | `Not of casemap_condition ] type special_casing_property = CamomileLibrary.UCharInfo.Make(Config).special_casing_property = { lower : CamomileLibrary.UChar.t list; title : CamomileLibrary.UChar.t list; upper : CamomileLibrary.UChar.t list; condition : casemap_condition list; } val load_conditional_casing_tbl : unit -> special_casing_property list CamomileLibrary.UCharTbl.t val load_casefolding_tbl : unit -> CamomileLibrary.UChar.t list CamomileLibrary.UCharTbl.t val combined_class : CamomileLibrary.UChar.t -> int type decomposition_type = [ `Canon | `Circle | `Compat | `Final | `Font | `Fraction | `Initial | `Isolated | `Medial | `Narrow | `NoBreak | `Small | `Square | `Sub | `Super | `Vertical | `Wide ] type decomposition_info = [ `Canonform | `Composite of decomposition_type * CamomileLibrary.UChar.t list | `HangulSyllable ] val load_decomposition_tbl : unit -> decomposition_info CamomileLibrary.UCharTbl.t val load_composition_tbl : unit -> (CamomileLibrary.UChar.t * CamomileLibrary.UChar.t) list CamomileLibrary.UCharTbl.t val load_composition_exclusion_tbl : unit -> CamomileLibrary.UCharTbl.Bool.t end module UNF : sig module type Type = CamomileLibrary.UNF.Type module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t class nfd : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel class nfc : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel class nfkd : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.OOChannel.obj_output_channel class nfkc : CamomileLibrary.UChar.t #CamomileLibrary.OOChannel.obj_output_channel -> [CamomileLibrary.UChar.t] CamomileLibrary.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 = CamomileLibrary.UNF.Make(Config)(Text).NFCBuf.buf val create : int -> buf val contents : buf -> text val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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 : CamomileLibrary.XString.t -> text -> unit val put_nfkd : CamomileLibrary.XString.t -> text -> unit val put_nfc : CamomileLibrary.XString.t -> text -> unit val put_nfkc : CamomileLibrary.XString.t -> text -> unit type index = Text.index val nfd_inc : text -> index -> ([ `Inc of CamomileLibrary.UChar.t list * index * 'a lazy_t ] as 'a) val canon_compare : text -> text -> int val nfd_decompose : CamomileLibrary.UChar.t -> CamomileLibrary.UChar.t list val nfkd_decompose : CamomileLibrary.UChar.t -> CamomileLibrary.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 = CamomileLibrary.UCol.Type module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t type index = Text.index val compare : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> text -> text -> int val sort_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> text -> string val compare_with_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> string -> text -> int val search_with_key : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> string -> text -> index -> index * index val search : ?locale:string -> ?prec:CamomileLibrary.UCol.precision -> ?variable:CamomileLibrary.UCol.variable_option -> text -> text -> index -> index * index end end module CaseMap : sig module type Type = CamomileLibrary.CaseMap.Type module Make : functor (Text : CamomileLibrary.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 : sig type regexp = CamomileLibrary.URe.regexp val regexp : string -> regexp val quote : string -> string val regexp_string : string -> regexp module type Type = sig type text type index type compiled_regexp module SubText : sig type t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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:CamomileLibrary.URe.match_semantics -> compiled_regexp -> text -> index -> SubText.t option array option val string_match : compiled_regexp -> text -> index -> bool val search_forward : ?sem:CamomileLibrary.URe.match_semantics -> compiled_regexp -> text -> index -> SubText.t option array option end module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t type index = Text.index type compiled_regexp = CamomileLibrary.UReStr.Configure(Config).Make(Text).compiled_regexp module SubText : sig type t = CamomileLibrary.UReStr.Configure(Config).Make(Text).SubText.t val get : t -> int -> CamomileLibrary.UChar.t val init : int -> (int -> CamomileLibrary.UChar.t) -> t val length : t -> int type index = CamomileLibrary.UReStr.Configure(Config).Make(Text).SubText.index val look : t -> index -> CamomileLibrary.UChar.t val nth : t -> int -> index val first : t -> index val last : t -> index val next : t -> index -> index val prev : t -> index -> index val move : t -> index -> int -> index val out_of_range : t -> index -> bool val compare_index : t -> index -> index -> int val iter : (CamomileLibrary.UChar.t -> unit) -> t -> unit val compare : t -> t -> int module Buf : sig type buf = CamomileLibrary.UReStr.Configure(Config).Make(Text).SubText.Buf.buf val create : int -> buf val contents : buf -> t val clear : buf -> unit val reset : buf -> unit val add_char : buf -> CamomileLibrary.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:CamomileLibrary.URe.match_semantics -> compiled_regexp -> text -> index -> SubText.t option array option val string_match : compiled_regexp -> text -> index -> bool val search_forward : ?sem:CamomileLibrary.URe.match_semantics -> compiled_regexp -> text -> index -> SubText.t option array option end end module StringPrep : sig module type Type = CamomileLibrary.StringPrep.Type module Make : functor (Text : CamomileLibrary.UnicodeString.Type) -> sig type text = Text.t exception Prohibited of CamomileLibrary.UChar.t exception Bad_bidi type profile = [ `Iscsi | `Mib | `Nameprep | `Nodeprep | `Resourceprep | `Saslprep | `Trace ] val stringprep : profile -> text -> text end end end end`