Copyright | (c) dramforever 2017 |
---|---|
License | BSD3 |
Maintainer | dramforever |
Stability | experimental |
Portability | non-portable (Template Haskell) |
Safe Haskell | None |
Language | Haskell2010 |
An internal module where most of the real transformation goes on.
- data Result a
- addBind :: Name -> Exp -> Result ()
- each :: ExpQ -> ExpQ
- generate :: Result Exp -> Exp
- transform :: Exp -> Q (Result Exp)
- bodyToExp :: Body -> Exp
- transformFieldExp :: FieldExp -> Q (Result FieldExp)
- impurify :: Exp -> Q (Result Exp)
- errNonExhaustiveGuard :: String
- errUnsupported :: String
- errPatternGuard :: String
- errWhere :: String
- errComplexLet :: String
Documentation
A writer monad where the empty case is distinguished.