ascii-th-1.0.0.2: Template Haskell support for ASCII

Safe HaskellNone
LanguageHaskell2010

ASCII.TemplateHaskell

Contents

Synopsis

Characters

charExp :: Char -> Q Exp Source #

>>> $(toCharOrFail 'F' >>= charExp)
CapitalLetterF
>>> $(toCharOrFail '\DEL' >>= charExp)
Delete

charPat :: Char -> Q Pat Source #

>>> :{
>>> case SmallLetterS of
>>> $(toCharOrFail 'r' >>= charPat) -> 1
>>> $(toCharOrFail 's' >>= charPat) -> 2
>>> _                               -> 3
>>> :}
2

This is the same as:

>>> :{
>>> case SmallLetterS of
>>> SmallLetterR -> 1
>>> SmallLetterS -> 2
>>> _            -> 3
>>> :}
2

Character lists

charListExp :: [Char] -> Q Exp Source #

>>> $(charListExp [CapitalLetterH, SmallLetterI])
[CapitalLetterH,SmallLetterI]

charListPat :: [Char] -> Q Pat Source #

>>> :{
>>> case [CapitalLetterH, SmallLetterI] of
>>> $(charListPat [CapitalLetterH, SmallLetterA]) -> 1
>>> $(charListPat [CapitalLetterH, SmallLetterI]) -> 2
>>> _                                             -> 3
>>> :}
2

Character supersets

isCharExp :: Char -> Q Exp Source #

>>> $(isCharExp CapitalLetterA) :: ASCII.Char
CapitalLetterA
>>> $(isCharExp CapitalLetterA) :: Word8
65
>>> $(isCharExp CapitalLetterA) :: ASCII Word8
asciiUnsafe 65

isCharPat :: Char -> Q Pat Source #

>>> :set -XViewPatterns
>>> :{
>>> case (66 :: Word8) of
>>> $(isCharPat CapitalLetterA) -> 1
>>> $(isCharPat CapitalLetterB) -> 2
>>> _                           -> 3
>>> :}
2

String supersets