ghc-7.8.2: The GHC API

Safe Haskell | None
Language | Haskell98

TcMatches

# Documentation

tcMatchesFun :: Name -> Bool -> MatchGroup Name (LHsExpr Name) -> TcSigmaType -> TcM (HsWrapper, MatchGroup TcId (LHsExpr TcId))

tcGRHS :: TcMatchCtxt body -> TcRhoType -> GRHS Name (Located (body Name)) -> TcM (GRHS TcId (Located (body TcId)))

tcGRHSsPat :: GRHSs Name (LHsExpr Name) -> TcRhoType -> TcM (GRHSs TcId (LHsExpr TcId))

tcMatchesCase :: Outputable (body Name) => TcMatchCtxt body -> TcRhoType -> MatchGroup Name (Located (body Name)) -> TcRhoType -> TcM (MatchGroup TcId (Located (body TcId)))

tcMatchLambda :: MatchGroup Name (LHsExpr Name) -> TcRhoType -> TcM (HsWrapper, MatchGroup TcId (LHsExpr TcId))

data TcMatchCtxt body

Constructors

MC |
Fields mc_what :: HsMatchContext Name mc_body :: Located (body Name) -> TcRhoType -> TcM (Located (body TcId))

type TcStmtChecker body = forall thing. HsStmtContext Name -> Stmt Name (Located (body Name)) -> TcRhoType -> (TcRhoType -> TcM thing) -> TcM (Stmt TcId (Located (body TcId)), thing)

type TcExprStmtChecker = TcStmtChecker HsExpr

type TcCmdStmtChecker = TcStmtChecker HsCmd

tcStmts :: Outputable (body Name) => HsStmtContext Name -> TcStmtChecker body -> [LStmt Name (Located (body Name))] -> TcRhoType -> TcM [LStmt TcId (Located (body TcId))]

tcStmtsAndThen :: Outputable (body Name) => HsStmtContext Name -> TcStmtChecker body -> [LStmt Name (Located (body Name))] -> TcRhoType -> (TcRhoType -> TcM thing) -> TcM ([LStmt TcId (Located (body TcId))], thing)

tcDoStmts :: HsStmtContext Name -> [LStmt Name (LHsExpr Name)] -> TcRhoType -> TcM (HsExpr TcId)

tcBody :: LHsExpr Name -> TcRhoType -> TcM (LHsExpr TcId)

tcDoStmt :: TcExprStmtChecker

tcGuardStmt :: TcExprStmtChecker