sig
type cp = int
val is_cp : int -> bool
val is_scalar_value : int -> bool
module Cpmap :
sig
type key = cp
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val mem : key -> 'a t -> bool
val add : key -> 'a -> 'a t -> 'a t
val singleton : key -> 'a -> 'a t
val remove : key -> 'a t -> 'a t
val merge :
(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val for_all : (key -> 'a -> bool) -> 'a t -> bool
val exists : (key -> 'a -> bool) -> 'a t -> bool
val filter : (key -> 'a -> bool) -> 'a t -> 'a t
val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
val cardinal : 'a t -> int
val bindings : 'a t -> (key * 'a) list
val min_binding : 'a t -> key * 'a
val max_binding : 'a t -> key * 'a
val choose : 'a t -> key * 'a
val split : key -> 'a t -> 'a t * 'a option * 'a t
val find : key -> 'a t -> 'a
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
end
type props
type 'a prop
val find : Uucd.props -> 'a Uucd.prop -> 'a option
val unknown_prop : string * string -> string Uucd.prop
val age : [ `Unassigned | `Version of int * int ] Uucd.prop
val alphabetic : bool Uucd.prop
val ascii_hex_digit : bool Uucd.prop
val bidi_class :
[ `AL
| `AN
| `B
| `BN
| `CS
| `EN
| `ES
| `ET
| `FSI
| `L
| `LRE
| `LRI
| `LRO
| `NSM
| `ON
| `PDF
| `PDI
| `R
| `RLE
| `RLI
| `RLO
| `S
| `WS ] Uucd.prop
val bidi_control : bool Uucd.prop
val bidi_mirrored : bool Uucd.prop
val bidi_mirroring_glyph : Uucd.cp option Uucd.prop
val bidi_paired_bracket : [ `Cp of Uucd.cp | `Self ] Uucd.prop
val bidi_paired_bracket_type : [ `C | `N | `O ] Uucd.prop
val block :
[ `ASCII
| `Aegean_Numbers
| `Alchemical
| `Alphabetic_PF
| `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
| `Batak
| `Bengali
| `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_Radicals_Sup
| `CJK_Strokes
| `CJK_Symbols
| `Carian
| `Chakma
| `Cham
| `Cherokee
| `Compat_Jamo
| `Control_Pictures
| `Coptic
| `Counting_Rod
| `Cuneiform
| `Cuneiform_Numbers
| `Currency_Symbols
| `Cypriot_Syllabary
| `Cyrillic
| `Cyrillic_Ext_A
| `Cyrillic_Ext_B
| `Cyrillic_Sup
| `Deseret
| `Devanagari
| `Devanagari_Ext
| `Diacriticals
| `Diacriticals_For_Symbols
| `Diacriticals_Sup
| `Dingbats
| `Domino
| `Egyptian_Hieroglyphs
| `Emoticons
| `Enclosed_Alphanum
| `Enclosed_Alphanum_Sup
| `Enclosed_CJK
| `Enclosed_Ideographic_Sup
| `Ethiopic
| `Ethiopic_Ext
| `Ethiopic_Ext_A
| `Ethiopic_Sup
| `Geometric_Shapes
| `Georgian
| `Georgian_Sup
| `Glagolitic
| `Gothic
| `Greek
| `Greek_Ext
| `Gujarati
| `Gurmukhi
| `Half_And_Full_Forms
| `Half_Marks
| `Hangul
| `Hanunoo
| `Hebrew
| `High_PU_Surrogates
| `High_Surrogates
| `Hiragana
| `IDC
| `IPA_Ext
| `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
| `Lao
| `Latin_1_Sup
| `Latin_Ext_A
| `Latin_Ext_Additional
| `Latin_Ext_B
| `Latin_Ext_C
| `Latin_Ext_D
| `Lepcha
| `Letterlike_Symbols
| `Limbu
| `Linear_B_Ideograms
| `Linear_B_Syllabary
| `Lisu
| `Low_Surrogates
| `Lycian
| `Lydian
| `Mahjong
| `Malayalam
| `Mandaic
| `Math_Alphanum
| `Math_Operators
| `Meetei_Mayek
| `Meetei_Mayek_Ext
| `Meroitic_Cursive
| `Meroitic_Hieroglyphs
| `Miao
| `Misc_Arrows
| `Misc_Math_Symbols_A
| `Misc_Math_Symbols_B
| `Misc_Pictographs
| `Misc_Symbols
| `Misc_Technical
| `Modifier_Letters
| `Modifier_Tone_Letters
| `Mongolian
| `Music
| `Myanmar
| `Myanmar_Ext_A
| `NB
| `NKo
| `New_Tai_Lue
| `Number_Forms
| `OCR
| `Ogham
| `Ol_Chiki
| `Old_Italic
| `Old_Persian
| `Old_South_Arabian
| `Old_Turkic
| `Oriya
| `Osmanya
| `PUA
| `Phags_Pa
| `Phaistos
| `Phoenician
| `Phonetic_Ext
| `Phonetic_Ext_Sup
| `Playing_Cards
| `Punctuation
| `Rejang
| `Rumi
| `Runic
| `Samaritan
| `Saurashtra
| `Sharada
| `Shavian
| `Sinhala
| `Small_Forms
| `Sora_Sompeng
| `Specials
| `Sundanese
| `Sundanese_Sup
| `Sup_Arrows_A
| `Sup_Arrows_B
| `Sup_Math_Operators
| `Sup_PUA_A
| `Sup_PUA_B
| `Sup_Punctuation
| `Super_And_Sub
| `Syloti_Nagri
| `Syriac
| `Tagalog
| `Tagbanwa
| `Tags
| `Tai_Le
| `Tai_Tham
| `Tai_Viet
| `Tai_Xuan_Jing
| `Takri
| `Tamil
| `Telugu
| `Thaana
| `Thai
| `Tibetan
| `Tifinagh
| `Transport_And_Map
| `UCAS
| `UCAS_Ext
| `Ugaritic
| `VS
| `VS_Sup
| `Vai
| `Vedic_Ext
| `Vertical_Forms
| `Yi_Radicals
| `Yi_Syllables
| `Yijing ] Uucd.prop
val canonical_combining_class : int Uucd.prop
val cased : bool Uucd.prop
val case_folding : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val case_ignorable : bool Uucd.prop
val changes_when_casefolded : bool Uucd.prop
val changes_when_casemapped : bool Uucd.prop
val changes_when_lowercased : bool Uucd.prop
val changes_when_nfkc_casefolded : bool Uucd.prop
val changes_when_titlecased : bool Uucd.prop
val changes_when_uppercased : bool Uucd.prop
val composition_exclusion : bool Uucd.prop
val dash : bool Uucd.prop
val decomposition_mapping : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val decomposition_type :
[ `Can
| `Com
| `Enc
| `Fin
| `Font
| `Fra
| `Init
| `Iso
| `Med
| `Nar
| `Nb
| `None
| `Sml
| `Sqr
| `Sub
| `Sup
| `Vert
| `Wide ] Uucd.prop
val default_ignorable_code_point : bool Uucd.prop
val deprecated : bool Uucd.prop
val diacritic : bool Uucd.prop
val east_asian_width : [ `A | `F | `H | `N | `Na | `W ] Uucd.prop
val expands_on_nfc : bool Uucd.prop
val expands_on_nfd : bool Uucd.prop
val expands_on_nfkc : bool Uucd.prop
val expands_on_nfkd : bool Uucd.prop
val extender : bool Uucd.prop
val fc_nfkc_closure : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val full_composition_exclusion : bool Uucd.prop
val general_category :
[ `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 ] Uucd.prop
val grapheme_base : bool Uucd.prop
val grapheme_cluster_break :
[ `CN
| `CR
| `EX
| `L
| `LF
| `LV
| `LVT
| `PP
| `RI
| `SM
| `T
| `V
| `XX ] Uucd.prop
val grapheme_extend : bool Uucd.prop
val grapheme_link : bool Uucd.prop
val hangul_syllable_type : [ `L | `LV | `LVT | `NA | `T | `V ] Uucd.prop
val hex_digit : bool Uucd.prop
val hyphen : bool Uucd.prop
val id_continue : bool Uucd.prop
val id_start : bool Uucd.prop
val ideographic : bool Uucd.prop
val ids_binary_operator : bool Uucd.prop
val ids_trinary_operator : bool Uucd.prop
val indic_syllabic_category :
[ `Avagraha
| `Bindu
| `Consonant
| `Consonant_Dead
| `Consonant_Final
| `Consonant_Head_Letter
| `Consonant_Medial
| `Consonant_Placeholder
| `Consonant_Repha
| `Consonant_Subjoined
| `Modifying_Letter
| `Nukta
| `Other
| `Register_Shifter
| `Tone_Letter
| `Tone_Mark
| `Virama
| `Visarga
| `Vowel
| `Vowel_Dependent
| `Vowel_Independent ] Uucd.prop
val indic_matra_category :
[ `Bottom
| `Bottom_And_Right
| `Invisible
| `Left
| `Left_And_Right
| `NA
| `Overstruck
| `Right
| `Top
| `Top_And_Bottom
| `Top_And_Bottom_And_Right
| `Top_And_Left
| `Top_And_Left_And_Right
| `Top_And_Right
| `Visual_Order_Left ] Uucd.prop
val iso_comment : string Uucd.prop
val jamo_short_name : string Uucd.prop
val join_control : bool Uucd.prop
val joining_group :
[ `Ain
| `Alaph
| `Alef
| `Alef_Maqsurah
| `Beh
| `Beth
| `Burushaski_Yeh_Barree
| `Dal
| `Dalath_Rish
| `E
| `Farsi_Yeh
| `Fe
| `Feh
| `Final_Semkath
| `Gaf
| `Gamal
| `Hah
| `Hamza_On_Heh_Goal
| `He
| `Heh
| `Heh_Goal
| `Heth
| `Kaf
| `Kaph
| `Khaph
| `Knotted_Heh
| `Lam
| `Lamadh
| `Meem
| `Mim
| `No_Joining_Group
| `Noon
| `Nun
| `Nya
| `Pe
| `Qaf
| `Qaph
| `Reh
| `Reversed_Pe
| `Rohingya_Yeh
| `Sad
| `Sadhe
| `Seen
| `Semkath
| `Shin
| `Swash_Kaf
| `Syriac_Waw
| `Tah
| `Taw
| `Teh_Marbuta
| `Teh_Marbuta_Goal
| `Teth
| `Waw
| `Yeh
| `Yeh_Barree
| `Yeh_With_Tail
| `Yudh
| `Yudh_He
| `Zain
| `Zhain ] Uucd.prop
val joining_type : [ `C | `D | `L | `R | `T | `U ] Uucd.prop
val line_break :
[ `AI
| `AL
| `B2
| `BA
| `BB
| `BK
| `CB
| `CJ
| `CL
| `CM
| `CP
| `CR
| `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 ] Uucd.prop
val logical_order_exception : bool Uucd.prop
val lowercase : bool Uucd.prop
val lowercase_mapping : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val math : bool Uucd.prop
val name : [ `Name of string | `Pattern of string ] Uucd.prop
val name_alias :
(string *
[ `Abbreviation | `Alternate | `Control | `Correction | `Figment ])
list Uucd.prop
val nfc_quick_check : [ `False | `Maybe | `True ] Uucd.prop
val nfd_quick_check : [ `False | `Maybe | `True ] Uucd.prop
val nfkc_quick_check : [ `False | `Maybe | `True ] Uucd.prop
val nfkc_casefold : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val nfkd_quick_check : [ `False | `Maybe | `True ] Uucd.prop
val noncharacter_code_point : bool Uucd.prop
val numeric_type : [ `De | `Di | `None | `Nu ] Uucd.prop
val numeric_value : [ `Frac of int * int | `NaN | `Num of int64 ] Uucd.prop
val other_alphabetic : bool Uucd.prop
val other_default_ignorable_code_point : bool Uucd.prop
val other_grapheme_extend : bool Uucd.prop
val other_id_continue : bool Uucd.prop
val other_id_start : bool Uucd.prop
val other_lowercase : bool Uucd.prop
val other_math : bool Uucd.prop
val other_uppercase : bool Uucd.prop
val pattern_syntax : bool Uucd.prop
val pattern_white_space : bool Uucd.prop
val quotation_mark : bool Uucd.prop
val radical : bool Uucd.prop
type script =
[ `Arab
| `Armi
| `Armn
| `Avst
| `Bali
| `Bamu
| `Batk
| `Beng
| `Bopo
| `Brah
| `Brai
| `Bugi
| `Buhd
| `Cakm
| `Cans
| `Cari
| `Cham
| `Cher
| `Copt
| `Cprt
| `Cyrl
| `Deva
| `Dsrt
| `Egyp
| `Ethi
| `Geor
| `Glag
| `Goth
| `Grek
| `Gujr
| `Guru
| `Hang
| `Hani
| `Hano
| `Hebr
| `Hira
| `Hrkt
| `Ital
| `Java
| `Kali
| `Kana
| `Khar
| `Khmr
| `Knda
| `Kthi
| `Lana
| `Laoo
| `Latn
| `Lepc
| `Limb
| `Linb
| `Lisu
| `Lyci
| `Lydi
| `Mand
| `Merc
| `Mero
| `Mlym
| `Mong
| `Mtei
| `Mymr
| `Nkoo
| `Ogam
| `Olck
| `Orkh
| `Orya
| `Osma
| `Phag
| `Phli
| `Phnx
| `Plrd
| `Prti
| `Qaai
| `Rjng
| `Runr
| `Samr
| `Sarb
| `Saur
| `Shaw
| `Shrd
| `Sinh
| `Sora
| `Sund
| `Sylo
| `Syrc
| `Tagb
| `Takr
| `Tale
| `Talu
| `Taml
| `Tavt
| `Telu
| `Tfng
| `Tglg
| `Thaa
| `Thai
| `Tibt
| `Ugar
| `Vaii
| `Xpeo
| `Xsux
| `Yiii
| `Zinh
| `Zyyy
| `Zzzz ]
val script : Uucd.script Uucd.prop
val script_extensions : Uucd.script list Uucd.prop
val sentence_break :
[ `AT
| `CL
| `CR
| `EX
| `FO
| `LE
| `LF
| `LO
| `NU
| `SC
| `SE
| `SP
| `ST
| `UP
| `XX ] Uucd.prop
val simple_case_folding : [ `Cp of Uucd.cp | `Self ] Uucd.prop
val simple_lowercase_mapping : [ `Cp of Uucd.cp | `Self ] Uucd.prop
val simple_titlecase_mapping : [ `Cp of Uucd.cp | `Self ] Uucd.prop
val simple_uppercase_mapping : [ `Cp of Uucd.cp | `Self ] Uucd.prop
val soft_dotted : bool Uucd.prop
val sterm : bool Uucd.prop
val terminal_punctuation : bool Uucd.prop
val titlecase_mapping : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val uax_42_element :
[ `Char | `Noncharacter | `Reserved | `Surrogate ] Uucd.prop
val unicode_1_name : string Uucd.prop
val unified_ideograph : bool Uucd.prop
val uppercase : bool Uucd.prop
val uppercase_mapping : [ `Cps of Uucd.cp list | `Self ] Uucd.prop
val variation_selector : bool Uucd.prop
val white_space : bool Uucd.prop
val word_break :
[ `CR
| `DQ
| `EX
| `Extend
| `FO
| `HL
| `KA
| `LE
| `LF
| `MB
| `ML
| `MN
| `NL
| `NU
| `RI
| `SQ
| `XX ] Uucd.prop
val xid_continue : bool Uucd.prop
val xid_start : bool Uucd.prop
val kAccountingNumeric : string Uucd.prop
val kAlternateHanYu : string Uucd.prop
val kAlternateJEF : string Uucd.prop
val kAlternateKangXi : string Uucd.prop
val kAlternateMorohashi : string Uucd.prop
val kBigFive : string Uucd.prop
val kCCCII : string Uucd.prop
val kCNS1986 : string Uucd.prop
val kCNS1992 : string Uucd.prop
val kCangjie : string Uucd.prop
val kCantonese : string Uucd.prop
val kCheungBauer : string Uucd.prop
val kCheungBauerIndex : string Uucd.prop
val kCihaiT : string Uucd.prop
val kCompatibilityVariant : string Uucd.prop
val kCowles : string Uucd.prop
val kDaeJaweon : string Uucd.prop
val kDefinition : string Uucd.prop
val kEACC : string Uucd.prop
val kFenn : string Uucd.prop
val kFennIndex : string Uucd.prop
val kFourCornerCode : string Uucd.prop
val kFrequency : string Uucd.prop
val kGB0 : string Uucd.prop
val kGB1 : string Uucd.prop
val kGB3 : string Uucd.prop
val kGB5 : string Uucd.prop
val kGB7 : string Uucd.prop
val kGB8 : string Uucd.prop
val kGradeLevel : string Uucd.prop
val kGSR : string Uucd.prop
val kHangul : string Uucd.prop
val kHanYu : string Uucd.prop
val kHanyuPinlu : string Uucd.prop
val kHanyuPinyin : string Uucd.prop
val kHDZRadBreak : string Uucd.prop
val kHKGlyph : string Uucd.prop
val kHKSCS : string Uucd.prop
val kIBMJapan : string Uucd.prop
val kIICore : string Uucd.prop
val kIRGDaeJaweon : string Uucd.prop
val kIRGDaiKanwaZiten : string Uucd.prop
val kIRGHanyuDaZidian : string Uucd.prop
val kIRGKangXi : string Uucd.prop
val kIRG_GSource : string Uucd.prop
val kIRG_HSource : string Uucd.prop
val kIRG_JSource : string Uucd.prop
val kIRG_KPSource : string Uucd.prop
val kIRG_KSource : string Uucd.prop
val kIRG_MSource : string Uucd.prop
val kIRG_TSource : string Uucd.prop
val kIRG_USource : string Uucd.prop
val kIRG_VSource : string Uucd.prop
val kJHJ : string Uucd.prop
val kJIS0213 : string Uucd.prop
val kJapaneseKun : string Uucd.prop
val kJapaneseOn : string Uucd.prop
val kJis0 : string Uucd.prop
val kJis1 : string Uucd.prop
val kKPS0 : string Uucd.prop
val kKPS1 : string Uucd.prop
val kKSC0 : string Uucd.prop
val kKSC1 : string Uucd.prop
val kKangXi : string Uucd.prop
val kKarlgren : string Uucd.prop
val kKorean : string Uucd.prop
val kLau : string Uucd.prop
val kMainlandTelegraph : string Uucd.prop
val kMandarin : string Uucd.prop
val kMatthews : string Uucd.prop
val kMeyerWempe : string Uucd.prop
val kMorohashi : string Uucd.prop
val kNelson : string Uucd.prop
val kOtherNumeric : string Uucd.prop
val kPhonetic : string Uucd.prop
val kPrimaryNumeric : string Uucd.prop
val kPseudoGB1 : string Uucd.prop
val kRSAdobe_Japan1_6 : string Uucd.prop
val kRSJapanese : string Uucd.prop
val kRSKanWa : string Uucd.prop
val kRSKangXi : string Uucd.prop
val kRSKorean : string Uucd.prop
val kRSMerged : string Uucd.prop
val kRSUnicode : string Uucd.prop
val kSBGY : string Uucd.prop
val kSemanticVariant : string Uucd.prop
val kSimplifiedVariant : string Uucd.prop
val kSpecializedSemanticVariant : string Uucd.prop
val kTaiwanTelegraph : string Uucd.prop
val kTang : string Uucd.prop
val kTotalStrokes : string Uucd.prop
val kTraditionalVariant : string Uucd.prop
val kVietnamese : string Uucd.prop
val kXHC1983 : string Uucd.prop
val kWubi : string Uucd.prop
val kXerox : string Uucd.prop
val kZVariant : string Uucd.prop
type block = (Uucd.cp * Uucd.cp) * string
type named_sequence = string * Uucd.cp list
type normalization_correction =
Uucd.cp * Uucd.cp list * Uucd.cp list * (int * int * int)
type standardized_variant =
Uucd.cp list * string * [ `Final | `Initial | `Isolate | `Medial ] list
type cjk_radical = string * Uucd.cp * Uucd.cp
type emoji_source = Uucd.cp list * int option * int option * int option
type t = {
description : string;
repertoire : Uucd.props Uucd.Cpmap.t;
blocks : Uucd.block list;
named_sequences : Uucd.named_sequence list;
provisional_named_sequences : Uucd.named_sequence list;
normalization_corrections : Uucd.normalization_correction list;
standardized_variants : Uucd.standardized_variant list;
cjk_radicals : Uucd.cjk_radical list;
emoji_sources : Uucd.emoji_source list;
}
val cp_prop : Uucd.t -> Uucd.cp -> 'a Uucd.prop -> 'a option
type src = [ `Channel of Pervasives.in_channel | `String of string ]
type decoder
val decoder : [< Uucd.src ] -> Uucd.decoder
val decode : Uucd.decoder -> [ `Error of string | `Ok of Uucd.t ]
val decoded_range : Uucd.decoder -> (int * int) * (int * int)
end