| Copyright | (c) Justus Adam 2016 |
|---|---|
| License | BSD3 |
| Maintainer | dev@justus.science |
| Stability | experimental |
| Portability | POSIX |
| Safe Haskell | None |
| Language | Haskell2010 |
Marvin.Interpolate
Contents
Description
Please refer to the documentation at https://marvin.readthedocs.io/en/latest/interpolation.html for examples and explanations on how to use this library.
- is :: String -> Q Exp
- iq :: QuasiQuoter
- interpolateInto :: Exp -> String -> Exp
Documentation
is :: String -> Q Exp Source #
interpolate splice
Template Haskell splice function, used like $(is "my str #{expr}")
Performs no conversion on interpolated expressions like expr.
iq :: QuasiQuoter Source #
interpolate quoter
QuasiQuoter, used like [iq|my str #{expr}|]
Performs no conversion on interpolated expressions like expr.
Internals/extension points
interpolateInto :: Exp -> String -> Exp Source #
Common core of all interpolators.
interpolateInto exp str parses str as the interpolated string and returns an Exp which looks like
"str" `mappend` exp1 `mappend` "str" `mappend` exp2 `mappend` "str"
where exp1 and exp2 are the interpolated expressions with exp prepended.
The intended use of exp is to unifomly convert the interpolated expressions into a desired string type.
Typically exp will be something like ( were VarE 'convert)convert is some member function of a conversion type class.