ghc-7.0.4: The GHC API

DsUtils

Description

Utility functions for constructing Core syntax, principally for desugaring

# Documentation

data EquationInfo Source

Constructors

EqnInfo |

Fields

eqn_pats :: [Pat Id]
eqn_rhs :: MatchResult

Instances

Outputable EquationInfo |

firstPat :: EquationInfo -> Pat Id Source

shiftEqns :: [EquationInfo] -> [EquationInfo]Source

data MatchResult Source

Constructors

MatchResult CanItFail (CoreExpr -> DsM CoreExpr) |

data CanItFail Source

Constructors

CanFail |
CantFail |

cantFailMatchResult :: CoreExpr -> MatchResult Source

alwaysFailMatchResult :: MatchResult Source

extractMatchResult :: MatchResult -> CoreExpr -> DsM CoreExpr Source

combineMatchResults :: MatchResult -> MatchResult -> MatchResult Source

adjustMatchResult :: DsWrapper -> MatchResult -> MatchResult Source

adjustMatchResultDs :: (CoreExpr -> DsM CoreExpr) -> MatchResult -> MatchResult Source

mkCoLetMatchResult :: CoreBind -> MatchResult -> MatchResult Source

mkViewMatchResult :: Id -> CoreExpr -> Id -> MatchResult -> MatchResult Source

mkGuardedMatchResult :: CoreExpr -> MatchResult -> MatchResult Source

matchCanFail :: MatchResult -> Bool Source

mkEvalMatchResult :: Id -> Type -> MatchResult -> MatchResult Source

mkCoPrimCaseMatchResult :: Id -> Type -> [(Literal, MatchResult)] -> MatchResult Source

mkCoAlgCaseMatchResult :: Id -> Type -> [(DataCon, [CoreBndr], MatchResult)] -> MatchResult Source

wrapBind :: Var -> Var -> CoreExpr -> CoreExpr Source

wrapBinds :: [(Var, Var)] -> CoreExpr -> CoreExpr Source

mkErrorAppDs :: Id -> Type -> SDoc -> DsM CoreExpr Source

mkCoreAppDs :: CoreExpr -> CoreExpr -> CoreExpr Source

mkCoreAppsDs :: CoreExpr -> [CoreExpr] -> CoreExpr Source

seqVar :: Var -> CoreExpr -> CoreExpr Source

mkLHsVarPatTup :: [Id] -> LPat Id Source

mkLHsPatTup :: [LPat Id] -> LPat Id Source

mkVanillaTuplePat :: [OutPat Id] -> Boxity -> Pat Id Source

mkBigLHsVarTup :: [Id] -> LHsExpr Id Source

mkBigLHsTup :: [LHsExpr Id] -> LHsExpr Id Source

mkBigLHsVarPatTup :: [Id] -> LPat Id Source

mkBigLHsPatTup :: [LPat Id] -> LPat Id Source

mkSelectorBinds :: LPat Id -> CoreExpr -> DsM [(Id, CoreExpr)]Source

dsSyntaxTable :: SyntaxTable Id -> DsM ([CoreBind], [(Name, Id)])Source

lookupEvidence :: [(Name, Id)] -> Name -> Id Source

selectSimpleMatchVarL :: LPat Id -> DsM Id Source

selectMatchVars :: [Pat Id] -> DsM [Id]Source

selectMatchVar :: Pat Id -> DsM Id Source

mkTickBox :: Int -> [Id] -> CoreExpr -> DsM CoreExpr Source

mkOptTickBox :: Maybe (Int, [Id]) -> CoreExpr -> DsM CoreExpr Source

mkBinaryTickBox :: Int -> Int -> CoreExpr -> DsM CoreExpr Source