Minor fix, and transform a failure into a warning
authorJose Pedro Magalhaes <jpm@cs.uu.nl>
Tue, 15 Nov 2011 10:07:10 +0000 (10:07 +0000)
committerJose Pedro Magalhaes <jpm@cs.uu.nl>
Wed, 16 Nov 2011 19:47:10 +0000 (20:47 +0100)
This warning has to be addressed later, though. It is only
relevant when using -XPolyKinds.

compiler/coreSyn/CoreLint.lhs

index 77747aa..f6627f3 100644 (file)
@@ -680,7 +680,7 @@ lintKind (FunTy k1 k2)
   = lintKind k1 >> lintKind k2
 
 lintKind kind@(TyConApp tc kis)
-  = do { unless (tyConArity tc == length kis || isSuperKindTyCon tc)
+  = do { unless (isSuperKindTyCon tc || tyConArity tc == length kis)
            (addErrL malformed_kind)
        ; mapM_ lintKind kis }
   where
@@ -863,8 +863,8 @@ lintType (TyVarTy tv)
   = do { checkTyCoVarInScope tv
        ; let kind = tyVarKind tv
        ; lintKind kind
-       ; if (isSuperKind kind) then failWithL msg
-         else return kind }
+       ; WARN( isSuperKind kind, msg )
+         return kind }
   where msg = hang (ptext (sLit "Expecting a type, but got a kind"))
                  2 (ptext (sLit "Offending kind:") <+> ppr tv)