lintCoreExpr :: CoreExpr -> LintM Type
-- The returned type has the substitution from the monad
-- already applied to it:
--- lintCoreExpr e subst = exprTpye (subst e)
+-- lintCoreExpr e subst = exprType (subst e)
lintCoreExpr (Var var)
= do { checkIdInScope var
; ty' <- applySubst ty
; checkTys actual_ty ty' (mkCaseAltMsg expr actual_ty ty') }
-lintCoreAlt :: Type -- Type of scrutinee
+lintCoreAlt :: Type -- Type of scrutinee; a fixed point of
+ -- the substitution
-> Type -- Type of the alternative
-> CoreAlt
-> LintM ()