Utility functions for constructing Core syntax, principally for desugaring
Documentation
firstPat :: EquationInfo -> Pat IdSource
shiftEqns :: [EquationInfo] -> [EquationInfo]Source
data MatchResult Source
adjustMatchResultDs :: (CoreExpr -> DsM CoreExpr) -> MatchResult -> MatchResultSource
mkViewMatchResult :: Id -> CoreExpr -> Id -> MatchResult -> MatchResultSource
mkEvalMatchResult :: Id -> Type -> MatchResult -> MatchResultSource
mkCoPrimCaseMatchResult :: Id -> Type -> [(Literal, MatchResult)] -> MatchResultSource
mkCoAlgCaseMatchResult :: Id -> Type -> [(DataCon, [CoreBndr], MatchResult)] -> MatchResultSource
mkCoreAppDs :: CoreExpr -> CoreExpr -> CoreExprSource
mkCoreAppsDs :: CoreExpr -> [CoreExpr] -> CoreExprSource
mkLHsVarPatTup :: [Id] -> LPat IdSource
mkBigLHsVarTup :: [Id] -> LHsExpr IdSource
mkBigLHsVarPatTup :: [Id] -> LPat IdSource
dsSyntaxTable :: SyntaxTable Id -> DsM ([CoreBind], [(Name, Id)])Source