sig   val unicode_version : string   module Age :     sig       type t = [ `Unassigned | `Version of int * int ]       val compare : Uucp.Age.t -> Uucp.Age.t -> int       val pp : Format.formatter -> Uucp.Age.t -> unit       val age : Uchar.t -> Uucp.Age.t     end   module Alpha : sig val is_alphabetic : Uchar.t -> bool end   module Block :     sig       type t =           [ `ASCII           | `Adlam           | `Aegean_Numbers           | `Ahom           | `Alchemical           | `Alphabetic_PF           | `Anatolian_Hieroglyphs           | `Ancient_Greek_Music           | `Ancient_Greek_Numbers           | `Ancient_Symbols           | `Arabic           | `Arabic_Ext_A           | `Arabic_Math           | `Arabic_PF_A           | `Arabic_PF_B           | `Arabic_Sup           | `Armenian           | `Arrows           | `Avestan           | `Balinese           | `Bamum           | `Bamum_Sup           | `Bassa_Vah           | `Batak           | `Bengali           | `Bhaiksuki           | `Block_Elements           | `Bopomofo           | `Bopomofo_Ext           | `Box_Drawing           | `Brahmi           | `Braille           | `Buginese           | `Buhid           | `Byzantine_Music           | `CJK           | `CJK_Compat           | `CJK_Compat_Forms           | `CJK_Compat_Ideographs           | `CJK_Compat_Ideographs_Sup           | `CJK_Ext_A           | `CJK_Ext_B           | `CJK_Ext_C           | `CJK_Ext_D           | `CJK_Ext_E           | `CJK_Radicals_Sup           | `CJK_Strokes           | `CJK_Symbols           | `Carian           | `Caucasian_Albanian           | `Chakma           | `Cham           | `Cherokee           | `Cherokee_Sup           | `Compat_Jamo           | `Control_Pictures           | `Coptic           | `Coptic_Epact_Numbers           | `Counting_Rod           | `Cuneiform           | `Cuneiform_Numbers           | `Currency_Symbols           | `Cypriot_Syllabary           | `Cyrillic           | `Cyrillic_Ext_A           | `Cyrillic_Ext_B           | `Cyrillic_Ext_C           | `Cyrillic_Sup           | `Deseret           | `Devanagari           | `Devanagari_Ext           | `Diacriticals           | `Diacriticals_Ext           | `Diacriticals_For_Symbols           | `Diacriticals_Sup           | `Dingbats           | `Domino           | `Duployan           | `Early_Dynastic_Cuneiform           | `Egyptian_Hieroglyphs           | `Elbasan           | `Emoticons           | `Enclosed_Alphanum           | `Enclosed_Alphanum_Sup           | `Enclosed_CJK           | `Enclosed_Ideographic_Sup           | `Ethiopic           | `Ethiopic_Ext           | `Ethiopic_Ext_A           | `Ethiopic_Sup           | `Geometric_Shapes           | `Geometric_Shapes_Ext           | `Georgian           | `Georgian_Sup           | `Glagolitic           | `Glagolitic_Sup           | `Gothic           | `Grantha           | `Greek           | `Greek_Ext           | `Gujarati           | `Gurmukhi           | `Half_And_Full_Forms           | `Half_Marks           | `Hangul           | `Hanunoo           | `Hatran           | `Hebrew           | `Hiragana           | `IDC           | `IPA_Ext           | `Ideographic_Symbols           | `Imperial_Aramaic           | `Indic_Number_Forms           | `Inscriptional_Pahlavi           | `Inscriptional_Parthian           | `Jamo           | `Jamo_Ext_A           | `Jamo_Ext_B           | `Javanese           | `Kaithi           | `Kana_Sup           | `Kanbun           | `Kangxi           | `Kannada           | `Katakana           | `Katakana_Ext           | `Kayah_Li           | `Kharoshthi           | `Khmer           | `Khmer_Symbols           | `Khojki           | `Khudawadi           | `Lao           | `Latin_1_Sup           | `Latin_Ext_A           | `Latin_Ext_Additional           | `Latin_Ext_B           | `Latin_Ext_C           | `Latin_Ext_D           | `Latin_Ext_E           | `Lepcha           | `Letterlike_Symbols           | `Limbu           | `Linear_A           | `Linear_B_Ideograms           | `Linear_B_Syllabary           | `Lisu           | `Lycian           | `Lydian           | `Mahajani           | `Mahjong           | `Malayalam           | `Mandaic           | `Manichaean           | `Marchen           | `Math_Alphanum           | `Math_Operators           | `Meetei_Mayek           | `Meetei_Mayek_Ext           | `Mende_Kikakui           | `Meroitic_Cursive           | `Meroitic_Hieroglyphs           | `Miao           | `Misc_Arrows           | `Misc_Math_Symbols_A           | `Misc_Math_Symbols_B           | `Misc_Pictographs           | `Misc_Symbols           | `Misc_Technical           | `Modi           | `Modifier_Letters           | `Modifier_Tone_Letters           | `Mongolian           | `Mongolian_Sup           | `Mro           | `Multani           | `Music           | `Myanmar           | `Myanmar_Ext_A           | `Myanmar_Ext_B           | `NB           | `NKo           | `Nabataean           | `New_Tai_Lue           | `Newa           | `Number_Forms           | `OCR           | `Ogham           | `Ol_Chiki           | `Old_Hungarian           | `Old_Italic           | `Old_North_Arabian           | `Old_Permic           | `Old_Persian           | `Old_South_Arabian           | `Old_Turkic           | `Oriya           | `Ornamental_Dingbats           | `Osage           | `Osmanya           | `PUA           | `Pahawh_Hmong           | `Palmyrene           | `Pau_Cin_Hau           | `Phags_Pa           | `Phaistos           | `Phoenician           | `Phonetic_Ext           | `Phonetic_Ext_Sup           | `Playing_Cards           | `Psalter_Pahlavi           | `Punctuation           | `Rejang           | `Rumi           | `Runic           | `Samaritan           | `Saurashtra           | `Sharada           | `Shavian           | `Shorthand_Format_Controls           | `Siddham           | `Sinhala           | `Sinhala_Archaic_Numbers           | `Small_Forms           | `Sora_Sompeng           | `Specials           | `Sundanese           | `Sundanese_Sup           | `Sup_Arrows_A           | `Sup_Arrows_B           | `Sup_Arrows_C           | `Sup_Math_Operators           | `Sup_PUA_A           | `Sup_PUA_B           | `Sup_Punctuation           | `Sup_Symbols_And_Pictographs           | `Super_And_Sub           | `Sutton_SignWriting           | `Syloti_Nagri           | `Syriac           | `Tagalog           | `Tagbanwa           | `Tags           | `Tai_Le           | `Tai_Tham           | `Tai_Viet           | `Tai_Xuan_Jing           | `Takri           | `Tamil           | `Tangut           | `Tangut_Components           | `Telugu           | `Thaana           | `Thai           | `Tibetan           | `Tifinagh           | `Tirhuta           | `Transport_And_Map           | `UCAS           | `UCAS_Ext           | `Ugaritic           | `VS           | `VS_Sup           | `Vai           | `Vedic_Ext           | `Vertical_Forms           | `Warang_Citi           | `Yi_Radicals           | `Yi_Syllables           | `Yijing ]       val compare : Uucp.Block.t -> Uucp.Block.t -> int       val pp : Format.formatter -> Uucp.Block.t -> unit       val blocks : (Uucp.Block.t * (Uchar.t * Uchar.t)) list       val block : Uchar.t -> Uucp.Block.t     end   module Break :     sig       type line =           [ `AI           | `AL           | `B2           | `BA           | `BB           | `BK           | `CB           | `CJ           | `CL           | `CM           | `CP           | `CR           | `EB           | `EM           | `EX           | `GL           | `H2           | `H3           | `HL           | `HY           | `ID           | `IN           | `IS           | `JL           | `JT           | `JV           | `LF           | `NL           | `NS           | `NU           | `OP           | `PO           | `PR           | `QU           | `RI           | `SA           | `SG           | `SP           | `SY           | `WJ           | `XX           | `ZW           | `ZWJ ]       val pp_line : Format.formatter -> Uucp.Break.line -> unit       val line : Uchar.t -> Uucp.Break.line       type grapheme_cluster =           [ `CN           | `CR           | `EB           | `EBG           | `EM           | `EX           | `GAZ           | `L           | `LF           | `LV           | `LVT           | `PP           | `RI           | `SM           | `T           | `V           | `XX           | `ZWJ ]       val pp_grapheme_cluster :         Format.formatter -> Uucp.Break.grapheme_cluster -> unit       val grapheme_cluster : Uchar.t -> Uucp.Break.grapheme_cluster       type word =           [ `CR           | `DQ           | `EB           | `EBG           | `EM           | `EX           | `Extend           | `FO           | `GAZ           | `HL           | `KA           | `LE           | `LF           | `MB           | `ML           | `MN           | `NL           | `NU           | `RI           | `SQ           | `XX           | `ZWJ ]       val pp_word : Format.formatter -> Uucp.Break.word -> unit       val word : Uchar.t -> Uucp.Break.word       type sentence =           [ `AT           | `CL           | `CR           | `EX           | `FO           | `LE           | `LF           | `LO           | `NU           | `SC           | `SE           | `SP           | `ST           | `UP           | `XX ]       val pp_sentence : Format.formatter -> Uucp.Break.sentence -> unit       val sentence : Uchar.t -> Uucp.Break.sentence       type east_asian_width = [ `A | `F | `H | `N | `Na | `W ]       val pp_east_asian_width :         Format.formatter -> Uucp.Break.east_asian_width -> unit       val east_asian_width : Uchar.t -> Uucp.Break.east_asian_width       val tty_width_hint : Uchar.t -> int       module Low :         sig           val line : Uchar.t -> int           val line_max : int           val line_of_int : Uucp.Break.line array           val grapheme_cluster : Uchar.t -> int           val grapheme_cluster_max : int           val grapheme_cluster_of_int : Uucp.Break.grapheme_cluster array           val word : Uchar.t -> int           val word_max : int           val word_of_int : Uucp.Break.word array           val sentence : Uchar.t -> int           val sentence_max : int           val sentence_of_int : Uucp.Break.sentence array         end     end   module Case :     sig       val is_lower : Uchar.t -> bool       val is_upper : Uchar.t -> bool       val is_cased : Uchar.t -> bool       val is_case_ignorable : Uchar.t -> bool       module Map :         sig           val to_lower : Uchar.t -> [ `Self | `Uchars of Uchar.t list ]           val to_upper : Uchar.t -> [ `Self | `Uchars of Uchar.t list ]           val to_title : Uchar.t -> [ `Self | `Uchars of Uchar.t list ]         end       module Fold :         sig val fold : Uchar.t -> [ `Self | `Uchars of Uchar.t list ] end       module Nfkc_fold :         sig val fold : Uchar.t -> [ `Self | `Uchars of Uchar.t list ] end     end   module Cjk :     sig       val is_ideographic : Uchar.t -> bool       val is_ids_bin_op : Uchar.t -> bool       val is_ids_tri_op : Uchar.t -> bool       val is_radical : Uchar.t -> bool       val is_unified_ideograph : Uchar.t -> bool     end   module Func :     sig       val is_dash : Uchar.t -> bool       val is_diacritic : Uchar.t -> bool       val is_extender : Uchar.t -> bool       val is_grapheme_base : Uchar.t -> bool       val is_grapheme_extend : Uchar.t -> bool       val is_math : Uchar.t -> bool       val is_quotation_mark : Uchar.t -> bool       val is_soft_dotted : Uchar.t -> bool       val is_terminal_punctuation : Uchar.t -> bool     end   module Gc :     sig       type t =           [ `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 compare : Uucp.Gc.t -> Uucp.Gc.t -> int       val pp : Format.formatter -> Uucp.Gc.t -> unit       val general_category : Uchar.t -> Uucp.Gc.t     end   module Gen :     sig       val is_default_ignorable : Uchar.t -> bool       val is_deprecated : Uchar.t -> bool       val is_logical_order_exception : Uchar.t -> bool       val is_non_character : Uchar.t -> bool       val is_variation_selector : Uchar.t -> bool     end   module Id :     sig       val is_id_start : Uchar.t -> bool       val is_id_continue : Uchar.t -> bool       val is_xid_start : Uchar.t -> bool       val is_xid_continue : Uchar.t -> bool       val is_pattern_syntax : Uchar.t -> bool       val is_pattern_white_space : Uchar.t -> bool     end   module Name :     sig       val name : Uchar.t -> string       type alias_tag =           [ `Abbreviation | `Alternate | `Control | `Correction | `Figment ]       val pp_alias_tag : Format.formatter -> Uucp.Name.alias_tag -> unit       val name_alias : Uchar.t -> (Uucp.Name.alias_tag * string) list     end   module Num :     sig       val is_ascii_hex_digit : Uchar.t -> bool       val is_hex_digit : Uchar.t -> bool       type numeric_type = [ `De | `Di | `None | `Nu ]       val pp_numeric_type : Format.formatter -> Uucp.Num.numeric_type -> unit       val numeric_type : Uchar.t -> Uucp.Num.numeric_type       type numeric_value = [ `Frac of int * int | `NaN | `Num of int64 ]       val pp_numeric_value :         Format.formatter -> Uucp.Num.numeric_value -> unit       val numeric_value :         Uchar.t -> [ `Frac of int * int | `NaN | `Num of int64 ]     end   module Script :     sig       type t =           [ `Adlm           | `Aghb           | `Ahom           | `Arab           | `Armi           | `Armn           | `Avst           | `Bali           | `Bamu           | `Bass           | `Batk           | `Beng           | `Bhks           | `Bopo           | `Brah           | `Brai           | `Bugi           | `Buhd           | `Cakm           | `Cans           | `Cari           | `Cham           | `Cher           | `Copt           | `Cprt           | `Cyrl           | `Deva           | `Dsrt           | `Dupl           | `Egyp           | `Elba           | `Ethi           | `Geor           | `Glag           | `Goth           | `Gran           | `Grek           | `Gujr           | `Guru           | `Hang           | `Hani           | `Hano           | `Hatr           | `Hebr           | `Hira           | `Hluw           | `Hmng           | `Hrkt           | `Hung           | `Ital           | `Java           | `Kali           | `Kana           | `Khar           | `Khmr           | `Khoj           | `Knda           | `Kthi           | `Lana           | `Laoo           | `Latn           | `Lepc           | `Limb           | `Lina           | `Linb           | `Lisu           | `Lyci           | `Lydi           | `Mahj           | `Mand           | `Mani           | `Marc           | `Mend           | `Merc           | `Mero           | `Mlym           | `Modi           | `Mong           | `Mroo           | `Mtei           | `Mult           | `Mymr           | `Narb           | `Nbat           | `Newa           | `Nkoo           | `Ogam           | `Olck           | `Orkh           | `Orya           | `Osge           | `Osma           | `Palm           | `Pauc           | `Perm           | `Phag           | `Phli           | `Phlp           | `Phnx           | `Plrd           | `Prti           | `Qaai           | `Rjng           | `Runr           | `Samr           | `Sarb           | `Saur           | `Sgnw           | `Shaw           | `Shrd           | `Sidd           | `Sind           | `Sinh           | `Sora           | `Sund           | `Sylo           | `Syrc           | `Tagb           | `Takr           | `Tale           | `Talu           | `Taml           | `Tang           | `Tavt           | `Telu           | `Tfng           | `Tglg           | `Thaa           | `Thai           | `Tibt           | `Tirh           | `Ugar           | `Vaii           | `Wara           | `Xpeo           | `Xsux           | `Yiii           | `Zinh           | `Zyyy           | `Zzzz ]       val compare : Uucp.Script.t -> Uucp.Script.t -> int       val pp : Format.formatter -> Uucp.Script.t -> unit       val script : Uchar.t -> Uucp.Script.t       val script_extensions : Uchar.t -> Uucp.Script.t list     end   module White : sig val is_white_space : Uchar.t -> bool end   module Cmap :     sig       type 'a tree =           Empty         | C of int * 'a         | Cn of 'Uucp.Cmap.tree * 'Uucp.Cmap.tree * int * 'a       type 'a t = { default : 'a; tree : 'Uucp.Cmap.tree; }       val get : 'Uucp.Cmap.t -> int -> 'a       val of_sorted_list : '-> [ `C of int * 'a ] list -> 'Uucp.Cmap.t       val height : 'Uucp.Cmap.t -> int       val word_size : ('-> int) -> 'Uucp.Cmap.t -> int       val dump :         (Format.formatter -> '-> unit) ->         Format.formatter -> 'Uucp.Cmap.t -> unit     end   module Rmap :     sig       type 'a tree =           Empty         | R of int * int * 'a         | Rn of 'Uucp.Rmap.tree * 'Uucp.Rmap.tree * int * int * 'a       type 'a t = { default : 'a; tree : 'Uucp.Rmap.tree; }       val get : 'Uucp.Rmap.t -> int -> 'a       val of_sorted_list :         '-> [ `R of int * int * 'a ] list -> 'Uucp.Rmap.t       val height : 'Uucp.Rmap.t -> int       val word_size : ('-> int) -> 'Uucp.Rmap.t -> int       val dump :         (Format.formatter -> '-> unit) ->         Format.formatter -> 'Uucp.Rmap.t -> unit     end   module Tmap :     sig       type 'a t = { default : 'a; l0 : 'a array array array; }       val nil : 'a array       val create : '-> 'Uucp.Tmap.t       val get : 'Uucp.Tmap.t -> int -> 'a       val set : 'Uucp.Tmap.t -> int -> '-> unit       val word_size : ('-> int) -> 'Uucp.Tmap.t -> int       val dump :         (Format.formatter -> '-> unit) ->         Format.formatter -> 'Uucp.Tmap.t -> unit     end   module Tmapbool :     sig       type t = { default : bool; l0 : string array array; }       val nil : 'a array       val snil : string       val create : bool -> Uucp.Tmapbool.t       val get : Uucp.Tmapbool.t -> int -> bool       val set : Uucp.Tmapbool.t -> int -> bool -> unit       val word_size : Uucp.Tmapbool.t -> int       val dump : Format.formatter -> Uucp.Tmapbool.t -> unit     end   module Tmapbyte :     sig       type t = { default : int; l0 : string array array; }       val nil : 'a array       val snil : string       val create : int -> Uucp.Tmapbyte.t       val get : Uucp.Tmapbyte.t -> int -> int       val set : Uucp.Tmapbyte.t -> int -> int -> unit       val word_size : Uucp.Tmapbyte.t -> int       val dump : Format.formatter -> Uucp.Tmapbyte.t -> unit     end   module Tmap4bytes :     sig       type t = { default : string; l0 : string array array; }       val nil : 'a array       val snil : string       val create : string -> Uucp.Tmap4bytes.t       val word_size : Uucp.Tmap4bytes.t -> int       val dump : Format.formatter -> Uucp.Tmap4bytes.t -> unit       val create_uint16_pair : int * int -> Uucp.Tmap4bytes.t       val get_uint16_pair : Uucp.Tmap4bytes.t -> int -> int * int       val set_uint16_pair : Uucp.Tmap4bytes.t -> int -> int * int -> unit     end end