Safe Haskell | None |
---|
- data Declaration
- type Code = [Declaration]
- newtype CodeGenM s a = CodeGenM {
- unCodeGenM :: RWST s Code StringSet Q a
- renderDeclaration :: Declaration -> Text
- codeGenNewName :: String -> StringSet -> (Name, StringSet)
Documentation
data Declaration Source
A top-level declaration.
Declaration Dec (Maybe Text) | Optional textual declaration. This can be used for information (e.g. inline comments) that are not representable in TH. |
Comment Text | Comment text |
Eq Declaration | |
Data Declaration | |
Show Declaration | |
Typeable Declaration | |
(Monoid Code, Monad (CodeGenM s)) => MonadWriter Code (CodeGenM s) |
type Code = [Declaration]Source
Haskell code (without module declaration and imports)
CodeGenM | |
|
Monad (CodeGenM s) => MonadReader s (CodeGenM s) | |
Monad (CodeGenM s) => MonadState StringSet (CodeGenM s) | |
(Monoid Code, Monad (CodeGenM s)) => MonadWriter Code (CodeGenM s) | |
Monad (CodeGenM s) | |
Functor (CodeGenM s) | |
Functor (CodeGenM s) => Applicative (CodeGenM s) | |
Monad (CodeGenM s) => MonadIO (CodeGenM s) | |
(Monad (CodeGenM s), Applicative (CodeGenM s)) => Quasi (CodeGenM s) |
renderDeclaration :: Declaration -> TextSource
Render a declaration. When a declaration contains both a TH syntax tree and a text representation, the text representation is preferred.
codeGenNewName :: String -> StringSet -> (Name, StringSet)Source
Generates a fresh name