@hackage haskell-src-exts-qq0.6.0
A quasiquoter for haskell-src-exts.
Categories
License
BSD-3-Clause
Maintainer
Mathieu Boespflug <mboes@tweag.net>
Links
Versions
Installation
Dependencies (5)
- base >=4 && <5
- haskell-src-exts >=1.9.0
- haskell-src-meta >=0.3
- syb
- template-haskell Show all…
Dependents (4)
@hackage/global, @hackage/acme-everything, @hackage/dedukti, @hackage/jmacro
Allows one to write programs that generate Haskell programs much more concisely and legibly. This package supports:
Antiquotations, denoted by stealing the splice syntax of Template Haskell, for example
[hs| $x ++ $(Hs.strE "bar") |]. Splices may not nested.Antiquoting pattern variables in patterns, using double parentheses. For instance:
let x = Hs.name "n" in [hs| \ ((x)) -> $(Hs.Var (Hs.UnQual x)) + 1 |]
Antiquoting bound names. Names that are antiquoted appear surrounded by double underscores. For instance:
let f = "incr"
fE = Hs.Var $ Hs.UnQual $ Hs.name f
in [hs| let __f__ x = x + 1 in $fE 10 |]We need three different syntaxes for antiquotations, because we do not extend the haskell-src-exts parser in any way and the Template Haskell splicing syntax is only available in expression contexts.