ascii-th-1.0.0.10: Template Haskell support for ASCII
Safe HaskellNone
LanguageHaskell2010

ASCII.QuasiQuoters

Synopsis

Documentation

char :: QuasiQuoter Source #

Produces an expression or a pattern corresponding to an ASCII character.

The result will have an CharSuperset constraint; since this is polymorphic, use with a type signature to specify the particular you want is recommended.

The quasi-quoted string must consist of a single character that is within the ASCII character set.

>>> :set -XQuasiQuotes
>>> [char|e|] :: ASCII.Char
SmallLetterE
>>> [char|e|] :: Word8
101

Use in a pattern context requires enabling the ViewPatterns language extension.

>>> :set -XViewPatterns
>>> case Tilde of [char|@|] -> 1; [char|~|] -> 2; _ -> 3
2

string :: QuasiQuoter Source #

Produces an expression or a pattern corresponding to an ASCII string.

The result will have an StringSuperset constraint; since this is polymorphic, use with a type signature to specify the particular you want is recommended.

The quasi-quoted string must consist only of characters are within the ASCII character set.

>>> :set -XQuasiQuotes
>>> [string|Hello!|] :: [ASCII.Char]
[CapitalLetterH,SmallLetterE,SmallLetterL,SmallLetterL,SmallLetterO,ExclamationMark]
>>> [string|Hello!|] :: Data.String.String
"Hello!"
>>> [string|Hello!|] :: Data.Text.Text
"Hello!"
>>> Data.ByteString.Builder.toLazyByteString [string|Hello!|]
"Hello!"

Use in a pattern context requires enabling the ViewPatterns language extension.

>>> :set -XViewPatterns
>>> case [CapitalLetterH, SmallLetterI] of [string|Bye|] -> 1; [string|Hi|] -> 2; _ -> 3
2