streamly-core-0.1.0: Streaming, parsers, arrays and more
Copyright(c) 2022 Composewell Technologies
LicenseBSD-3-Clause
Maintainerstreamly@composewell.com
Stabilityreleased
PortabilityGHC
Safe HaskellSafe-Inferred
LanguageHaskell2010

Streamly.Unicode.String

Description

Convenient template Haskell quasiquoters to format strings.

Synopsis

Documentation

str :: QuasiQuoter Source #

A QuasiQuoter that treats the input as a string literal:

>>> [str|x|]
"x"

Any #{symbol} is replaced by the value of the Haskell symbol symbol which is in scope:

>>> x = "hello"
>>> [str|#{x} world!|]
"hello world!"

## means a literal # without the special meaning for referencing haskell symbols:

>>> [str|##{x} world!|]
"#{x} world!"

A # at the end of line means the line continues to the next line without introducing a newline character:

>>> :{
[str|hello#
world!|]
:}
"hello world!"

Bugs: because of a bug in parsers, a lone # at the end of input gets removed.