-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parsers for Unicode Character Database (UCD) files -- -- This package provides simple ByteString parsers for the -- Unicode character database (UCD). -- -- See the Unicode Standard Annex #44 for further details. @package unicode-data-parser @version 0.3.0.1 -- | Parser for DerivedNumericValues.txt module Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues -- | A parser for DerivedNumericValues.txt parse :: HasCallStack => ByteString -> [Entry] -- | An entry from DerivedNumericValues.txt file -- --
--   >>> parse "0030          ; 0.0 ; ; 0 # Nd       DIGIT ZERO"
--   [Entry {range = SingleChar {start = '0'}, numericValue = Integer 0}]
--   
--   >>> parse "0F33          ; -0.5 ; ; -1/2 # No       TIBETAN DIGIT HALF ZERO"
--   [Entry {range = SingleChar {start = '\3891'}, numericValue = Rational ((-1) % 2)}]
--   
--   >>> parse "11FC0         ; 0.003125 ; ; 1/320 # No       TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH"
--   [Entry {range = SingleChar {start = '\73664'}, numericValue = Rational (1 % 320)}]
--   
--   >>> parse "2159          ; 0.16666667 ; ; 1/6 # No       VULGAR FRACTION ONE SIXTH"
--   [Entry {range = SingleChar {start = '\8537'}, numericValue = Rational (1 % 6)}]
--   
data Entry Entry :: !CodePointRange -> !NumericValue -> Entry [$sel:range:Entry] :: Entry -> !CodePointRange [$sel:numericValue:Entry] :: Entry -> !NumericValue -- | Numeric value of a code point, if relevant data NumericValue Integer :: !Integer -> NumericValue Rational :: !Rational -> NumericValue instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues.NumericValue instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues.NumericValue instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues.Entry -- | Parser for DerivedName.txt module Unicode.CharacterDatabase.Parser.Extracted.DerivedName -- | A parser for DerivedName.txt file -- --
--   >>> parse "0020          ; SPACE"
--   [SingleChar {char = ' ', name = "SPACE"}]
--   
--   >>> parse "3400..4DBF    ; CJK UNIFIED IDEOGRAPH-*"
--   [CharRange {start = '\13312', end = '\19903', prefix = "CJK UNIFIED IDEOGRAPH-"}]
--   
--   >>> parse "18B00..18CD5  ; KHITAN SMALL SCRIPT CHARACTER-*"
--   [CharRange {start = '\101120', end = '\101589', prefix = "KHITAN SMALL SCRIPT CHARACTER-"}]
--   
parse :: HasCallStack => ByteString -> [Entry] -- | An entry from DerivedName.txt file data Entry SingleChar :: !Char -> !ShortByteString -> Entry [$sel:char:SingleChar] :: Entry -> !Char [$sel:name:SingleChar] :: Entry -> !ShortByteString CharRange :: !Char -> !Char -> !ShortByteString -> Entry [$sel:start:SingleChar] :: Entry -> !Char [$sel:end:SingleChar] :: Entry -> !Char [$sel:prefix:SingleChar] :: Entry -> !ShortByteString instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Extracted.DerivedName.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Extracted.DerivedName.Entry -- | Miscellaneous bits common to various parsers module Unicode.CharacterDatabase.Parser.Common -- | Parse a code point formatted as hexadecimal -- -- Warning: raise an error on invalid input. -- --
--   >>> parseCodePoint "0061"
--   'a'
--   
parseCodePoint :: HasCallStack => ShortByteString -> Char -- | Parse a list of code points parseCodePointList :: HasCallStack => ShortByteString -> [Char] -- | A Unicode code point range data CodePointRange SingleChar :: !Char -> CodePointRange [$sel:start:SingleChar] :: CodePointRange -> !Char CharRange :: !Char -> !Char -> CodePointRange [$sel:start:SingleChar] :: CodePointRange -> !Char [$sel:end:SingleChar] :: CodePointRange -> !Char -- | Numeric value of a code point, if relevant data NumericValue NotNumeric :: NumericValue Integer :: !Integer -> NumericValue Rational :: !Rational -> NumericValue -- | Parse space-separated list, similar to words. parseList :: HasCallStack => ShortByteString -> [ShortByteString] -- | Parser for CaseFolding.txt module Unicode.CharacterDatabase.Parser.CaseFolding -- | A parser for CaseFolding.txt -- --
--   >>> parse "0041; C; 0061; # LATIN CAPITAL LETTER A"
--   [Entry {char = 'A', caseFoldingType = CommonCaseFolding, caseFolding = "a"}]
--   
--   >>> parse "0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE"
--   [Entry {char = '\304', caseFoldingType = FullCaseFolding, caseFolding = "i\775"}]
--   
--   >>> parse "0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE"
--   [Entry {char = '\304', caseFoldingType = SpecialCaseFolding, caseFolding = "i"}]
--   
parse :: HasCallStack => ByteString -> [Entry] -- | An entry from CaseFolding.txt file data Entry Entry :: !Char -> !CaseFoldingType -> ![Char] -> Entry [$sel:char:Entry] :: Entry -> !Char [$sel:caseFoldingType:Entry] :: Entry -> !CaseFoldingType [$sel:caseFolding:Entry] :: Entry -> ![Char] -- | Type of case folding data CaseFoldingType -- | Common case folding, common mappings shared by both simple and -- full mappings. CommonCaseFolding :: CaseFoldingType -- | Full case folding, mappings that cause strings to grow in -- length. FullCaseFolding :: CaseFoldingType -- | Simple case folding, mappings to single characters where -- different from FullCaseFolding SimpleCaseFolding :: CaseFoldingType -- | Special case for uppercase I and dotted uppercase I SpecialCaseFolding :: CaseFoldingType instance GHC.Show.Show Unicode.CharacterDatabase.Parser.CaseFolding.CaseFoldingType instance GHC.Classes.Ord Unicode.CharacterDatabase.Parser.CaseFolding.CaseFoldingType instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.CaseFolding.CaseFoldingType instance GHC.Show.Show Unicode.CharacterDatabase.Parser.CaseFolding.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.CaseFolding.Entry -- | Parser for Blocks.txt module Unicode.CharacterDatabase.Parser.Blocks -- | A parser for Blocks.txt file parse :: HasCallStack => ByteString -> [Entry] -- | An entry from Blocks.txt file -- --
--   >>> parse "0000..007F; Basic Latin"
--   [Entry {start = '\NUL', end = '\DEL', name = "Basic Latin"}]
--   
--   >>> parse "100000..10FFFF; Supplementary Private Use Area-B"
--   [Entry {start = '\1048576', end = '\1114111', name = "Supplementary Private Use Area-B"}]
--   
data Entry Entry :: !Char -> !Char -> !ShortByteString -> Entry [$sel:start:Entry] :: Entry -> !Char [$sel:end:Entry] :: Entry -> !Char [$sel:name:Entry] :: Entry -> !ShortByteString instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Blocks.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Blocks.Entry -- | Parser for NameAliases.txt module Unicode.CharacterDatabase.Parser.NameAliases -- | A parser for NameAliases.txt file parse :: HasCallStack => ByteString -> [Entry] -- | An entry from NameAliases.txt file data Entry Entry :: !Char -> !AliasType -> !ShortByteString -> Entry [$sel:char:Entry] :: Entry -> !Char [$sel:nameAliasType:Entry] :: Entry -> !AliasType [$sel:nameAlias:Entry] :: Entry -> !ShortByteString -- | Type of name alias -- --
--   >>> parse "0000;NULL;control"
--   [Entry {char = '\NUL', nameAliasType = Control, nameAlias = "NULL"}]
--   
--   >>> parse "0000;NUL;abbreviation"
--   [Entry {char = '\NUL', nameAliasType = Abbreviation, nameAlias = "NUL"}]
--   
--   >>> parse "0080;PADDING CHARACTER;figment"
--   [Entry {char = '\128', nameAliasType = Figment, nameAlias = "PADDING CHARACTER"}]
--   
--   >>> parse "01A2;LATIN CAPITAL LETTER GHA;correction"
--   [Entry {char = '\418', nameAliasType = Correction, nameAlias = "LATIN CAPITAL LETTER GHA"}]
--   
data AliasType Correction :: AliasType Control :: AliasType Alternate :: AliasType Figment :: AliasType Abbreviation :: AliasType instance GHC.Show.Show Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Read.Read Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Classes.Ord Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Enum.Bounded Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Enum.Enum Unicode.CharacterDatabase.Parser.NameAliases.AliasType instance GHC.Show.Show Unicode.CharacterDatabase.Parser.NameAliases.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.NameAliases.Entry -- | Default values for properties. module Unicode.CharacterDatabase.Parser.Properties.Defaults -- | Default age defaultAge :: ShortByteString -- | Default block defaultBlock :: ShortByteString -- | Default general category defaultGeneralCategory :: ShortByteString -- | Default script defaultScript :: ShortByteString -- | Missing convention data MissingConvention MissingConvention :: !CodePointRange -> !ShortByteString -> MissingConvention [$sel:range:MissingConvention] :: MissingConvention -> !CodePointRange [$sel:value:MissingConvention] :: MissingConvention -> !ShortByteString -- | Missing convention data MissingPropertyConvention MissingPropertyConvention :: !CodePointRange -> !ShortByteString -> !ShortByteString -> MissingPropertyConvention [$sel:range:MissingPropertyConvention] :: MissingPropertyConvention -> !CodePointRange [$sel:property:MissingPropertyConvention] :: MissingPropertyConvention -> !ShortByteString [$sel:value:MissingPropertyConvention] :: MissingPropertyConvention -> !ShortByteString -- | Parser for @missing conventions without property name -- --
--   >>> parseMissingConventionM "# @missing: 0000..10FFFF; Unassigned"
--   Just (MissingConvention {range = CharRange {start = '\NUL', end = '\1114111'}, value = "Unassigned"})
--   
-- -- For further details, see: -- https://www.unicode.org/reports/tr44/#Missing_Conventions parseMissingConventionM :: HasCallStack => ByteString -> Maybe MissingConvention -- | Parser for @missing conventions with property name -- --
--   >>> parseMissingPropertyConventionM "# @missing: 0000..10FFFF; Decomposition_Mapping; <code point>"
--   Just (MissingPropertyConvention {range = CharRange {start = '\NUL', end = '\1114111'}, property = "Decomposition_Mapping", value = "<code point>"})
--   
-- -- For further details, see: -- https://www.unicode.org/reports/tr44/#Missing_Conventions parseMissingPropertyConventionM :: HasCallStack => ByteString -> Maybe MissingPropertyConvention instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Properties.Defaults.MissingConvention instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Properties.Defaults.MissingConvention instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Properties.Defaults.MissingPropertyConvention instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Properties.Defaults.MissingPropertyConvention -- | Parser for properties files with multiple properties, such as: -- -- module Unicode.CharacterDatabase.Parser.Properties.Multiple -- | A parser for properties files with multiple properties parse :: HasCallStack => ByteString -> [Entry] -- | An entry from a properties file with multiple properties -- --
--   >>> parse "0009..000D    ; White_Space # Cc   [5] <control-0009>..<control-000D>"
--   [Entry {range = CharRange {start = '\t', end = '\r'}, property = "White_Space", value = Nothing}]
--   
--   >>> parse "061C          ; Bidi_Control # Cf       ARABIC LETTER MARK"
--   [Entry {range = SingleChar {start = '\1564'}, property = "Bidi_Control", value = Nothing}]
--   
--   >>> parse "037A  ; FC_NFKC; 0020 03B9      # Lm  GREEK YPOGEGRAMMENI"
--   [Entry {range = SingleChar {start = '\890'}, property = "FC_NFKC", value = Just "0020 03B9"}]
--   
data Entry Entry :: !CodePointRange -> !ShortByteString -> !Maybe ShortByteString -> Entry [$sel:range:Entry] :: Entry -> !CodePointRange [$sel:property:Entry] :: Entry -> !ShortByteString [$sel:value:Entry] :: Entry -> !Maybe ShortByteString instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Properties.Multiple.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Properties.Multiple.Entry -- | Parser for properties files with a single property, such as: -- -- module Unicode.CharacterDatabase.Parser.Properties.Single -- | A parser for properties files with one value per entry -- --
--   >>> parse "102E0         ; Arab Copt # Mn       COPTIC EPACT THOUSANDS MARK"
--   [Entry {range = SingleChar {start = '\66272'}, value = "Arab Copt"}]
--   
--   >>> parse "1CF7          ; Beng # Mc       VEDIC SIGN ATIKRAMA"
--   [Entry {range = SingleChar {start = '\7415'}, value = "Beng"}]
--   
--   >>> parse "1CDE..1CDF    ; Deva # Mn   [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE DOTS BELOW"
--   [Entry {range = CharRange {start = '\7390', end = '\7391'}, value = "Deva"}]
--   
--   >>> parse "1CD0          ; Beng Deva Gran Knda # Mn       VEDIC TONE KARSHANA"
--   [Entry {range = SingleChar {start = '\7376'}, value = "Beng Deva Gran Knda"}]
--   
parse :: HasCallStack => ByteString -> [Entry] -- | An entry from a properties file with one value per entry data Entry Entry :: !CodePointRange -> !ShortByteString -> Entry [$sel:range:Entry] :: Entry -> !CodePointRange [$sel:value:Entry] :: Entry -> !ShortByteString -- | A parser for properties files with multiple values per entry parseMultipleValues :: HasCallStack => ByteString -> [EntryMultipleValues] -- | An entry from a properties file with multiple values per entry data EntryMultipleValues EntryMultipleValues :: !CodePointRange -> !NonEmpty ShortByteString -> EntryMultipleValues [$sel:range:EntryMultipleValues] :: EntryMultipleValues -> !CodePointRange [$sel:values:EntryMultipleValues] :: EntryMultipleValues -> !NonEmpty ShortByteString instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Properties.Single.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Properties.Single.Entry instance GHC.Show.Show Unicode.CharacterDatabase.Parser.Properties.Single.EntryMultipleValues instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.Properties.Single.EntryMultipleValues -- | Parser for PropertyValueAliases.txt module Unicode.CharacterDatabase.Parser.PropertyValueAliases -- | A parser for PropertyValueAliases.txt file parse :: HasCallStack => ByteString -> [Entry] -- | An entry from PropertyValueAliases.txt file -- --
--   >>> parse "age; 1.1                              ; V1_1"
--   [Entry {property = "age", value = PropertyValue {shortName = "1.1", longName = "V1_1", numericValue = Nothing, aliases = []}}]
--   
--   >>> parse "Alpha; N                              ; No                               ; F                                ; False"
--   [Entry {property = "Alpha", value = PropertyValue {shortName = "N", longName = "No", numericValue = Nothing, aliases = ["F","False"]}}]
--   
--   >>> parse "blk; Aegean_Numbers                   ; Aegean_Numbers"
--   [Entry {property = "blk", value = PropertyValue {shortName = "Aegean_Numbers", longName = "Aegean_Numbers", numericValue = Nothing, aliases = []}}]
--   
--   >>> parse "ccc;   0; NR                         ; Not_Reordered"
--   [Entry {property = "ccc", value = PropertyValue {shortName = "NR", longName = "Not_Reordered", numericValue = Just 0, aliases = []}}]
--   
--   >>> parse "ccc; 133; CCC133                     ; CCC133 # RESERVED"
--   [Entry {property = "ccc", value = PropertyValue {shortName = "CCC133", longName = "CCC133", numericValue = Just 133, aliases = []}}]
--   
data Entry Entry :: !ShortByteString -> !PropertyValue -> Entry [$sel:property:Entry] :: Entry -> !ShortByteString [$sel:value:Entry] :: Entry -> !PropertyValue data PropertyValue PropertyValue :: !ShortByteString -> !ShortByteString -> !Maybe Word8 -> ![ShortByteString] -> PropertyValue [$sel:shortName:PropertyValue] :: PropertyValue -> !ShortByteString [$sel:longName:PropertyValue] :: PropertyValue -> !ShortByteString [$sel:numericValue:PropertyValue] :: PropertyValue -> !Maybe Word8 [$sel:aliases:PropertyValue] :: PropertyValue -> ![ShortByteString] instance GHC.Show.Show Unicode.CharacterDatabase.Parser.PropertyValueAliases.PropertyValue instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.PropertyValueAliases.PropertyValue instance GHC.Show.Show Unicode.CharacterDatabase.Parser.PropertyValueAliases.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.PropertyValueAliases.Entry instance GHC.Show.Show Unicode.CharacterDatabase.Parser.PropertyValueAliases.PropertyValueAlias instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.PropertyValueAliases.PropertyValueAlias -- | Parser for SpecialCasing.txt module Unicode.CharacterDatabase.Parser.SpecialCasing -- | A parser for SpecialCasing.txt file parse :: HasCallStack => ByteString -> [Entry] -- | An entry from SpecialCasing.txt file -- --
--   >>> parse "00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S"
--   [Entry {char = '\223', specialCasing = SpecialCasing {lower = "\223", title = "Ss", upper = "SS", conditions = []}}]
--   
--   >>> parse "03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA"
--   [Entry {char = '\931', specialCasing = SpecialCasing {lower = "\962", title = "\931", upper = "\931", conditions = ["Final_Sigma"]}}]
--   
data Entry Entry :: !Char -> !SpecialCasing -> Entry [$sel:char:Entry] :: Entry -> !Char [$sel:specialCasing:Entry] :: Entry -> !SpecialCasing -- | Special casings of a character data SpecialCasing SpecialCasing :: ![Char] -> ![Char] -> ![Char] -> ![SpecialCasingCondition] -> SpecialCasing [$sel:lower:SpecialCasing] :: SpecialCasing -> ![Char] [$sel:title:SpecialCasing] :: SpecialCasing -> ![Char] [$sel:upper:SpecialCasing] :: SpecialCasing -> ![Char] [$sel:conditions:SpecialCasing] :: SpecialCasing -> ![SpecialCasingCondition] -- | Special casing condition newtype SpecialCasingCondition SpecialCasingCondition :: ShortByteString -> SpecialCasingCondition instance GHC.Show.Show Unicode.CharacterDatabase.Parser.SpecialCasing.SpecialCasingCondition instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.SpecialCasing.SpecialCasingCondition instance GHC.Show.Show Unicode.CharacterDatabase.Parser.SpecialCasing.SpecialCasing instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.SpecialCasing.SpecialCasing instance GHC.Show.Show Unicode.CharacterDatabase.Parser.SpecialCasing.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.SpecialCasing.Entry -- | Parser for UnicodeData.txt. module Unicode.CharacterDatabase.Parser.UnicodeData -- | Parser for UnicodeData.txt file -- --
--   >>> :{
--   traverse_ print . parse $
--     "0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;\n\
--     \00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;\n\
--     \17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;\n\
--     \187F7;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;\n"
--   :}
--   Entry {range = SingleChar {start = 'A'}, details = CharDetails {name = "LATIN CAPITAL LETTER A", generalCategory = Lu, combiningClass = 0, bidiClass = "L", bidiMirrored = False, decomposition = Self, numericValue = NotNumeric, simpleUpperCaseMapping = Nothing, simpleLowerCaseMapping = Just 'a', simpleTitleCaseMapping = Nothing}}
--   Entry {range = SingleChar {start = '\168'}, details = CharDetails {name = "DIAERESIS", generalCategory = Sk, combiningClass = 0, bidiClass = "ON", bidiMirrored = False, decomposition = Decomposition {decompositionType = Compat, decompositionMapping = " \776"}, numericValue = NotNumeric, simpleUpperCaseMapping = Nothing, simpleLowerCaseMapping = Nothing, simpleTitleCaseMapping = Nothing}}
--   Entry {range = CharRange {start = '\94208', end = '\100343'}, details = CharDetails {name = "Tangut Ideograph", generalCategory = Lo, combiningClass = 0, bidiClass = "L", bidiMirrored = False, decomposition = Self, numericValue = NotNumeric, simpleUpperCaseMapping = Nothing, simpleLowerCaseMapping = Nothing, simpleTitleCaseMapping = Nothing}}
--   
parse :: HasCallStack => ByteString -> [Entry] -- | An entry in UnicodeData.txt. data Entry Entry :: !CodePointRange -> !CharDetails -> Entry [$sel:range:Entry] :: Entry -> !CodePointRange [$sel:details:Entry] :: Entry -> !CharDetails -- | Core characteristics of a Unicode code point data CharDetails CharDetails :: !ShortByteString -> !GeneralCategory -> !Word8 -> !ShortByteString -> !Bool -> !Decomposition -> !NumericValue -> !Maybe Char -> !Maybe Char -> !Maybe Char -> CharDetails -- | In case of a range, the range’s name. It is better to use the names -- from DerivedName.txt. [$sel:name:CharDetails] :: CharDetails -> !ShortByteString [$sel:generalCategory:CharDetails] :: CharDetails -> !GeneralCategory -- | Value in the range 0..254 [$sel:combiningClass:CharDetails] :: CharDetails -> !Word8 [$sel:bidiClass:CharDetails] :: CharDetails -> !ShortByteString [$sel:bidiMirrored:CharDetails] :: CharDetails -> !Bool [$sel:decomposition:CharDetails] :: CharDetails -> !Decomposition [$sel:numericValue:CharDetails] :: CharDetails -> !NumericValue [$sel:simpleUpperCaseMapping:CharDetails] :: CharDetails -> !Maybe Char [$sel:simpleLowerCaseMapping:CharDetails] :: CharDetails -> !Maybe Char [$sel:simpleTitleCaseMapping:CharDetails] :: CharDetails -> !Maybe Char -- | See: https://www.unicode.org/reports/tr44/#General_Category data GeneralCategory -- | Letter, Uppercase Lu :: GeneralCategory -- | Letter, Lowercase Ll :: GeneralCategory -- | Letter, Titlecase Lt :: GeneralCategory -- | Letter, Modifier Lm :: GeneralCategory -- | Letter, Other Lo :: GeneralCategory -- | Mark, Non-Spacing Mn :: GeneralCategory -- | Mark, Spacing Combining Mc :: GeneralCategory -- | Mark, Enclosing Me :: GeneralCategory -- | Number, Decimal Nd :: GeneralCategory -- | Number, Letter Nl :: GeneralCategory -- | Number, Other No :: GeneralCategory -- | Punctuation, Connector Pc :: GeneralCategory -- | Punctuation, Dash Pd :: GeneralCategory -- | Punctuation, Open Ps :: GeneralCategory -- | Punctuation, Close Pe :: GeneralCategory -- | Punctuation, Initial quote Pi :: GeneralCategory -- | Punctuation, Final quote Pf :: GeneralCategory -- | Punctuation, Other Po :: GeneralCategory -- | Symbol, Math Sm :: GeneralCategory -- | Symbol, Currency Sc :: GeneralCategory -- | Symbol, Modifier Sk :: GeneralCategory -- | Symbol, Other So :: GeneralCategory -- | Separator, Space Zs :: GeneralCategory -- | Separator, Line Zl :: GeneralCategory -- | Separator, Paragraph Zp :: GeneralCategory -- | Other, Control Cc :: GeneralCategory -- | Other, Format Cf :: GeneralCategory -- | Other, Surrogate Cs :: GeneralCategory -- | Other, Private Use Co :: GeneralCategory -- | Other, Not Assigned Cn :: GeneralCategory pattern DefaultGeneralCategory :: GeneralCategory -- | See: -- https://www.unicode.org/reports/tr44/#Character_Decomposition_Mappings data DecompositionType Canonical :: DecompositionType Compat :: DecompositionType Font :: DecompositionType NoBreak :: DecompositionType Initial :: DecompositionType Medial :: DecompositionType Final :: DecompositionType Isolated :: DecompositionType Circle :: DecompositionType Super :: DecompositionType Sub :: DecompositionType Vertical :: DecompositionType Wide :: DecompositionType Narrow :: DecompositionType Small :: DecompositionType Square :: DecompositionType Fraction :: DecompositionType -- | Unicode decomposition of a code point data Decomposition Self :: Decomposition Decomposition :: !DecompositionType -> ![Char] -> Decomposition [$sel:decompositionType:Self] :: Decomposition -> !DecompositionType [$sel:decompositionMapping:Self] :: Decomposition -> ![Char] -- | Numeric value of a code point, if relevant data NumericValue NotNumeric :: NumericValue Integer :: !Integer -> NumericValue Rational :: !Rational -> NumericValue instance GHC.Read.Read Unicode.CharacterDatabase.Parser.UnicodeData.GeneralCategory instance GHC.Show.Show Unicode.CharacterDatabase.Parser.UnicodeData.GeneralCategory instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.UnicodeData.GeneralCategory instance GHC.Enum.Enum Unicode.CharacterDatabase.Parser.UnicodeData.GeneralCategory instance GHC.Enum.Bounded Unicode.CharacterDatabase.Parser.UnicodeData.GeneralCategory instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.UnicodeData.DecompositionType instance GHC.Show.Show Unicode.CharacterDatabase.Parser.UnicodeData.DecompositionType instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.UnicodeData.Decomposition instance GHC.Show.Show Unicode.CharacterDatabase.Parser.UnicodeData.Decomposition instance GHC.Show.Show Unicode.CharacterDatabase.Parser.UnicodeData.CharDetails instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.UnicodeData.CharDetails instance GHC.Show.Show Unicode.CharacterDatabase.Parser.UnicodeData.Entry instance GHC.Classes.Eq Unicode.CharacterDatabase.Parser.UnicodeData.Entry