Unicode General Categories (column 2 of the UnicodeData table) in the order they are listed in the Unicode standard (the Unicode Character Database, in particular).
Examples
Basic usage:
:t OtherLetterOtherLetter :: GeneralCategory
Eq instance:
UppercaseLetter == UppercaseLetterTrueUppercaseLetter == LowercaseLetterFalse
Ord instance:
NonSpacingMark <= MathSymbolTrue
Enum instance:
enumFromTo ModifierLetter SpacingCombiningMark[ModifierLetter,OtherLetter,NonSpacingMark,SpacingCombiningMark]
Text.Read.Read instance:
read "DashPunctuation" :: GeneralCategoryDashPunctuationread "17" :: GeneralCategory*** Exception: Prelude.read: no parse
Show instance:
show EnclosingMark"EnclosingMark"
Bounded instance:
minBound :: GeneralCategoryUppercaseLettermaxBound :: GeneralCategoryNotAssigned
Ix instance:
import GHC.Internal.Data.Ix ( index )index (OtherLetter,Control) FinalQuote12index (OtherLetter,Control) Format*** Exception: Error in array index
Constructors
UppercaseLetterLu: Letter, Uppercase
LowercaseLetterLl: Letter, Lowercase
TitlecaseLetterLt: Letter, Titlecase
ModifierLetterLm: Letter, Modifier
OtherLetterLo: Letter, Other
NonSpacingMarkMn: Mark, Non-Spacing
SpacingCombiningMarkMc: Mark, Spacing Combining
EnclosingMarkMe: Mark, Enclosing
DecimalNumberNd: Number, Decimal
LetterNumberNl: Number, Letter
OtherNumberNo: Number, Other
ConnectorPunctuationPc: Punctuation, Connector
DashPunctuationPd: Punctuation, Dash
OpenPunctuationPs: Punctuation, Open
ClosePunctuationPe: Punctuation, Close
InitialQuotePi: Punctuation, Initial quote
FinalQuotePf: Punctuation, Final quote
OtherPunctuationPo: Punctuation, Other
MathSymbolSm: Symbol, Math
CurrencySymbolSc: Symbol, Currency
ModifierSymbolSk: Symbol, Modifier
OtherSymbolSo: Symbol, Other
SpaceZs: Separator, Space
LineSeparatorZl: Separator, Line
ParagraphSeparatorZp: Separator, Paragraph
ControlCc: Other, Control
FormatCf: Other, Format
SurrogateCs: Other, Surrogate
PrivateUseCo: Other, Private Use
NotAssignedCn: Other, Not Assigned
Instances9Bounded, Enum, Eq, Ord, Read, Show, …
Bounded GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeEnum GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeEq GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeOrd GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeRead GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeIx GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeGeneric GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep GeneralCategory = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics"GeneralCategory"
"GHC.Internal.Unicode"
"ghc-internal"
'False) ((((C1 ('MetaCons"UppercaseLetter"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"LowercaseLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TitlecaseLetter"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ModifierLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherLetter"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NonSpacingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SpacingCombiningMark"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"EnclosingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DecimalNumber"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LetterNumber"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherNumber"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ConnectorPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DashPunctuation"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OpenPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ClosePunctuation"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"InitialQuote"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"FinalQuote"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherPunctuation"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MathSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CurrencySymbol"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ModifierSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherSymbol"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"Space"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LineSeparator"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ParagraphSeparator"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Control"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"Format"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Surrogate"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PrivateUse"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NotAssigned"
'PrefixI 'False) U1)))))