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.