Safe Haskell | None |
---|---|

Language | Haskell2010 |

- data QuasiQuoter = QuasiQuoter {}
- dataToQa :: forall a k q. Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (forall b. Data b => b -> Maybe (Q q)) -> a -> Q q
- dataToExpQ :: Data a => (forall b. Data b => b -> Maybe (Q Exp)) -> a -> Q Exp
- dataToPatQ :: Data a => (forall b. Data b => b -> Maybe (Q Pat)) -> a -> Q Pat
- quoteFile :: QuasiQuoter -> QuasiQuoter

# Documentation

data QuasiQuoter Source

dataToQa :: forall a k q. Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (forall b. Data b => b -> Maybe (Q q)) -> a -> Q q Source

dataToExpQ :: Data a => (forall b. Data b => b -> Maybe (Q Exp)) -> a -> Q Exp Source

`dataToExpQ`

converts a value to a 'Q Exp' representation of the same
value. It takes a function to handle type-specific cases.

dataToPatQ :: Data a => (forall b. Data b => b -> Maybe (Q Pat)) -> a -> Q Pat Source

`dataToPatQ`

converts a value to a 'Q Pat' representation of the same
value. It takes a function to handle type-specific cases.

quoteFile :: QuasiQuoter -> QuasiQuoter Source

`quoteFile`

takes a `QuasiQuoter`

and lifts it into one that read
the data out of a file. For example, suppose `asmq`

is an
assembly-language quoter, so that you can write [asmq| ld r1, r2 |]
as an expression. Then if you define `asmq_f = quoteFile asmq`

, then
the quote [asmq_f|foo.s|] will take input from file `"foo.s"`

instead
of the inline text