ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Rename.Expr

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)
- data UnexpectedStatement where
  - UnexpectedStatement :: Outputable (StmtLR GhcPs GhcPs body) => StmtLR GhcPs GhcPs body -> UnexpectedStatement

# Documentation

rnLExpr :: LHsExpr GhcPs -> RnM (LHsExpr GhcRn, FreeVars) Source #

rnExpr :: HsExpr GhcPs -> RnM (HsExpr GhcRn, FreeVars) Source #

rnStmts Source #

Arguments

:: 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

mkExpandedExpr Source #

Arguments

:: HsExpr GhcRn | source expression
-> HsExpr GhcRn | expanded expression
-> HsExpr GhcRn | suitably wrapped `HsExpansion`

Build a `HsExpansion` out of an extension constructor, and the two components of the expansion: original and desugared expressions.

type AnnoBody body = Outputable (body GhcPs) Source #

data UnexpectedStatement where Source #

An existential wrapper around ``StmtLR` GhcPs GhcPs body`.

Constructors

UnexpectedStatement :: Outputable (StmtLR GhcPs GhcPs body) => StmtLR GhcPs GhcPs body -> UnexpectedStatement |