-- 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 -- | Parser for DerivedNumericValues.txt module Unicode.CharacterDatabase.Parser.Extracted.DerivedNumericValues -- | A parser for DerivedNumericValues.txt parse :: 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 :: 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 :: ShortByteString -> Char -- | Parse a list of code points parseCodePointList :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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 :: 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