TvSubst, TvSubstEnv, mkTvSubst, setTvSubstEnv, substTy,
extendTvSubst, composeTvSubst, substTyVarBndr, isInScope,
getTvSubstEnv, getTvInScope, mkTyVarTy )
-import Coercion ( Coercion, coercionKind, coercionKindTyConApp )
+import Coercion ( Coercion, coercionKind, coercionKindPredTy )
import TyCon ( isPrimTyCon, isNewTyCon )
import BasicTypes ( RecFlag(..), Boxity(..), isNonRec )
import StaticFlags ( opt_PprStyle_Debug )
(mkKindErrMsg tyvar arg_ty)
where
tyvar_kind = tyVarKind tyvar
- arg_kind | isCoVar tyvar = coercionKindTyConApp arg_ty
+ arg_kind | isCoVar tyvar = coercionKindPredTy arg_ty
| otherwise = typeKind arg_ty
\end{code}
lintCoreAlt scrut_ty alt_ty alt@(DataAlt con, args, rhs)
| isNewTyCon (dataConTyCon con) = addErrL (mkNewTyDataConAltMsg scrut_ty alt)
| Just (tycon, tycon_arg_tys) <- splitTyConApp_maybe scrut_ty
- = addLoc (CaseAlt alt) $ lintBinders args $ \ args ->
+ = lintBinders args $ \ args ->
do { addLoc (CasePat alt) $ do
{ -- Check the pattern
-- NB: args must be in scope here so that the lintCoreArgs line works.
-- NB: relies on existential type args coming *after* ordinary type args
- ; con_result_ty <-
- lintCoreArgs (dataConRepType con)
+ ; con_result_ty <- lintCoreArgs (dataConRepType con)
(map Type tycon_arg_tys ++ varsToCoreExprs args)
; checkTys con_result_ty scrut_ty (mkBadPatMsg con_result_ty scrut_ty)
}