sig
  module type Type =
    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 : UChar.t -> UCharInfo.Type.general_category_type
      val load_general_category_map :
        unit -> UCharInfo.Type.general_category_type 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
          | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   | `Unifiedbsp;   |