Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- rnLExpr :: LHsExpr GhcPs -> RnM (LHsExpr GhcRn, FreeVars)
- rnExpr :: HsExpr GhcPs -> RnM (HsExpr GhcRn, FreeVars)
- rnStmts :: AnnoBody body => HsStmtContext GhcRn -> (body GhcPs -> RnM (body GhcRn, FreeVars)) -> [LStmt GhcPs (LocatedA (body GhcPs))] -> ([Name] -> RnM (thing, FreeVars)) -> RnM (([LStmt GhcRn (LocatedA (body GhcRn))], thing), FreeVars)
- mkExpandedExpr :: HsExpr GhcRn -> HsExpr GhcRn -> HsExpr GhcRn
- type AnnoBody body = (Outputable (body GhcPs), Anno (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno (StmtLR GhcRn GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA, Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) ~ SrcSpanAnnA)
Documentation
:: AnnoBody body | |
=> HsStmtContext GhcRn | |
-> (body GhcPs -> RnM (body GhcRn, FreeVars)) | How to rename the body of each statement (e.g. rnLExpr) |
-> [LStmt GhcPs (LocatedA (body GhcPs))] | Statements |
-> ([Name] -> RnM (thing, FreeVars)) | if these statements scope over something, this renames it and returns the result. |
-> RnM (([LStmt GhcRn (LocatedA (body GhcRn))], thing), FreeVars) |
Rename some Stmts
:: HsExpr GhcRn | source expression |
-> HsExpr GhcRn | expanded expression |
-> HsExpr GhcRn | suitably wrapped |
Build a HsExpansion
out of an extension constructor,
and the two components of the expansion: original and
desugared expressions.