ascii-th-1.2.0.0: Template Haskell support for ASCII
Safe HaskellSafe-Inferred
LanguageHaskell2010

ASCII.TemplateHaskell

Synopsis

Monomorphic

Character

charExp :: Char -> Q Exp Source #

$(charExp CapitalLetterF) == CapitalLetterF

charPat :: Char -> Q Pat Source #

let
    x = case SmallLetterS of
          $(charPat SmallLetterR) -> 1
          $(charPat SmallLetterS) -> 2
          _ -> 3
in
    x == 2

String

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

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

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

let
    x = case [CapitalLetterH, SmallLetterI] of
          $(charListPat [CapitalLetterH, SmallLetterA]) -> 1
          $(charListPat [CapitalLetterH, SmallLetterI]) -> 2
          _ -> 3
in
    x == 2

Caseless string

caselessListExp :: [CaselessChar] -> Q Exp Source #

Expression with a FromChar constraint

$(isCharExp CapitalLetterA) == CapitalLetterA

$(isCharExp CapitalLetterA) == (65 :: Word8)

$(isCharExp CapitalLetterA) == (asciiUnsafe 65 :: ASCII Word8)

Polymorphic

Character

isCharPat :: Char -> Q Pat Source #

Pattern that matches a type with a ToChar constraint

let
    x = case (66 :: Word8) of
          $(isCharPat CapitalLetterA) -> 1
          $(isCharPat CapitalLetterB) -> 2
          _                           -> 3
in
    x == 2

String

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

Expression with a FromString constraint

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

Pattern that matches a type with a ToString constraint

Caseless string

caselessIsStringPat :: [CaselessChar] -> Q Pat Source #

Matches a value of any type belonging to the ToCaselessString class, as if it were a list of CaselessChar

Single-case string

upperStringExp :: [CaselessChar] -> Q Exp Source #

Expression with a 'ASCII.Superset.ToCasefulString UpperCase constraint

lowerStringExp :: [CaselessChar] -> Q Exp Source #

Expression with a 'ASCII.Superset.ToCasefulString LowerCase constraint