summaryrefslogtreecommitdiff
path: root/testsuite/tests
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2012-10-19 02:20:12 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2012-10-19 02:20:12 +0100
commit8bc6c4a613b5d16118469248cfb8025a5175a174 (patch)
tree56146daa18ef6f54974bf2c22c9121e2912a51da /testsuite/tests
parent09cdd12b22bcff1876ea80c0d9878507c2ed4f1f (diff)
downloadhaskell-8bc6c4a613b5d16118469248cfb8025a5175a174.tar.gz
Improvements to kind error messages, mainly
Also some expected/actual messages are now the right way round
Diffstat (limited to 'testsuite/tests')
-rw-r--r--testsuite/tests/gadt/gadt10.stderr1
-rw-r--r--testsuite/tests/ghci/scripts/ghci050.stderr4
-rw-r--r--testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/SimpleFail14.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2239.stderr4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2627b.stderr11
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2664.stderr4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2693.stderr16
-rw-r--r--testsuite/tests/indexed-types/should_fail/T5439.stderr15
-rw-r--r--testsuite/tests/indexed-types/should_fail/T6123.stderr2
-rw-r--r--testsuite/tests/polykinds/PolyKinds02.stderr3
-rw-r--r--testsuite/tests/polykinds/PolyKinds04.stderr14
-rw-r--r--testsuite/tests/rename/should_fail/rnfail026.stderr3
-rw-r--r--testsuite/tests/typecheck/should_compile/tc211.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/AssocTyDef04.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/T1633.stderr3
-rw-r--r--testsuite/tests/typecheck/should_fail/T2994.stderr4
-rw-r--r--testsuite/tests/typecheck/should_fail/T3540.stderr10
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail028.stderr13
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail036.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail057.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail058.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail063.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail110.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail113.stderr4
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail132.stderr13
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail134.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail135.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail136.stderr13
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail146.stderr12
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail147.stderr13
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail148.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail151.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail158.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail160.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail161.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail162.stderr1
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail212.stderr2
39 files changed, 106 insertions, 91 deletions
diff --git a/testsuite/tests/gadt/gadt10.stderr b/testsuite/tests/gadt/gadt10.stderr
index 00cb063d5d..e244eca056 100644
--- a/testsuite/tests/gadt/gadt10.stderr
+++ b/testsuite/tests/gadt/gadt10.stderr
@@ -1,6 +1,7 @@
gadt10.hs:6:24:
Expecting one more argument to `RInt'
+ Expected kind `*', but `RInt' has kind `k0 -> *'
In the type `RInt'
In the definition of data constructor `R'
In the data declaration for `RInt'
diff --git a/testsuite/tests/ghci/scripts/ghci050.stderr b/testsuite/tests/ghci/scripts/ghci050.stderr
index f31b5c425c..b2e11a26ef 100644
--- a/testsuite/tests/ghci/scripts/ghci050.stderr
+++ b/testsuite/tests/ghci/scripts/ghci050.stderr
@@ -1,7 +1,7 @@
<interactive>:6:49:
- Couldn't match expected type `a'
- with actual type `ListableElem (a, a)'
+ Couldn't match expected type `ListableElem (a, a)'
+ with actual type `a'
`a' is a rigid type variable bound by
the instance declaration at <interactive>:6:10
Relevant bindings include
diff --git a/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr b/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr
index 9c5465f27b..33fde554cf 100644
--- a/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr
+++ b/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr
@@ -1,7 +1,7 @@
GADTwrong1.hs:12:19:
Could not deduce (a1 ~ b)
- from the context (() ~ Const a1)
+ from the context (Const b ~ Const a1)
bound by a pattern with constructor
T :: forall a. a -> T (Const a),
in a case alternative
diff --git a/testsuite/tests/indexed-types/should_fail/SimpleFail14.stderr b/testsuite/tests/indexed-types/should_fail/SimpleFail14.stderr
index 8a86c21bcd..14f078d59a 100644
--- a/testsuite/tests/indexed-types/should_fail/SimpleFail14.stderr
+++ b/testsuite/tests/indexed-types/should_fail/SimpleFail14.stderr
@@ -1,6 +1,6 @@
SimpleFail14.hs:5:15:
- Predicate `a ~ a' used as a type
+ Expected a type, but `a ~ a' has kind `Constraint'
In the type `a ~ a'
In the definition of data constructor `T'
In the data declaration for `T'
diff --git a/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr b/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr
index 1410fca369..4ccdbc33bf 100644
--- a/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr
+++ b/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr
@@ -1,6 +1,6 @@
SimpleFail16.hs:10:12:
- Couldn't match expected type `F ()' with actual type `p0 a0'
+ Couldn't match expected type `p0 a0' with actual type `F ()'
The type variables `p0', `a0' are ambiguous
Possible cause: the monomorphism restriction applied to: `bar'
Probable fix: give these definition(s) an explicit type signature
diff --git a/testsuite/tests/indexed-types/should_fail/T2239.stderr b/testsuite/tests/indexed-types/should_fail/T2239.stderr
index d360bfd748..42fdb7154f 100644
--- a/testsuite/tests/indexed-types/should_fail/T2239.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T2239.stderr
@@ -2,7 +2,7 @@
T2239.hs:47:13:
Couldn't match type `forall b1. MyEq b1 Bool => b1 -> b1'
with `b -> b'
- Expected type: (forall b. MyEq b Bool => b -> b) -> b -> b
+ Expected type: (forall b1. MyEq b1 Bool => b1 -> b1) -> b -> b
Actual type: (forall b. MyEq b Bool => b -> b)
-> forall b. MyEq b Bool => b -> b
In the expression:
@@ -18,7 +18,7 @@ T2239.hs:47:13:
T2239.hs:50:13:
Couldn't match type `forall b1. b1 ~ Bool => b1 -> b1'
with `Bool -> Bool'
- Expected type: (forall b. b ~ Bool => b -> b) -> b -> b
+ Expected type: (forall b1. b1 ~ Bool => b1 -> b1) -> b -> b
Actual type: (forall b. b ~ Bool => b -> b)
-> forall b. b ~ Bool => b -> b
In the expression:
diff --git a/testsuite/tests/indexed-types/should_fail/T2627b.stderr b/testsuite/tests/indexed-types/should_fail/T2627b.stderr
index e18a8d2301..acf77ab303 100644
--- a/testsuite/tests/indexed-types/should_fail/T2627b.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T2627b.stderr
@@ -1,12 +1,9 @@
T2627b.hs:20:24:
- Couldn't match expected type `Dual (Dual a0)' with actual type `a0'
- `a0' is untouchable
- inside the constraints (b ~ W a2 b2)
- bound by a pattern with constructor
- Wr :: forall a b. a -> Comm b -> Comm (W a b),
- in an equation for `conn'
- at T2627b.hs:20:14-19
+ Occurs check: cannot construct the infinite type:
+ a0 ~ Dual (Dual a0)
+ The type variable `a0' is ambiguous
+ Possible fix: add a type signature that fixes these type variable(s)
In the expression: conn undefined undefined
In an equation for `conn':
conn (Rd k) (Wr a r) = conn undefined undefined
diff --git a/testsuite/tests/indexed-types/should_fail/T2664.stderr b/testsuite/tests/indexed-types/should_fail/T2664.stderr
index 07b12e4ea0..90a7dfacf8 100644
--- a/testsuite/tests/indexed-types/should_fail/T2664.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T2664.stderr
@@ -12,8 +12,8 @@ T2664.hs:31:52:
the instance declaration at T2664.hs:22:10
`a' is a rigid type variable bound by
the instance declaration at T2664.hs:22:10
- Expected type: Dual (Dual a)
- Actual type: b
+ Expected type: IO (PChan b, PChan (Dual a))
+ Actual type: IO (PChan (Dual (Dual a)), PChan (Dual a))
Relevant bindings include
newPChan :: IO (PChan (a :*: b), PChan c) (bound at T2664.hs:23:5)
v :: MVar (Either (PChan a) (PChan b)) (bound at T2664.hs:24:9)
diff --git a/testsuite/tests/indexed-types/should_fail/T2693.stderr b/testsuite/tests/indexed-types/should_fail/T2693.stderr
index b873cf2171..3b340bde6a 100644
--- a/testsuite/tests/indexed-types/should_fail/T2693.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T2693.stderr
@@ -33,15 +33,13 @@ T2693.hs:18:23:
In the second argument of `(+)', namely `snd x'
In the expression: fst x + snd x
-T2693.hs:28:20:
+T2693.hs:29:26:
Couldn't match type `TFn a0' with `PVR a1'
The type variables `a0', `a1' are ambiguous
Possible fix: add a type signature that fixes these type variable(s)
- Expected type: () -> Maybe (PVR a1)
- Actual type: () -> Maybe (TFn a0)
- In the first argument of `mapM', namely `g'
- In a stmt of a 'do' block: pvs <- mapM g undefined
- In the expression:
- do { pvs <- mapM g undefined;
- let n = (map pvrX pvs) `min` (map pvrX pvs);
- undefined }
+ Expected type: [PVR a1]
+ Actual type: [TFn a0]
+ Relevant bindings include pvs :: [TFn a0] (bound at T2693.hs:28:8)
+ In the second argument of `map', namely `pvs'
+ In the first argument of `min', namely `(map pvrX pvs)'
+ In the expression: (map pvrX pvs) `min` (map pvrX pvs)
diff --git a/testsuite/tests/indexed-types/should_fail/T5439.stderr b/testsuite/tests/indexed-types/should_fail/T5439.stderr
index 81453a0f54..87caf8c41a 100644
--- a/testsuite/tests/indexed-types/should_fail/T5439.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T5439.stderr
@@ -1,9 +1,7 @@
-T5439.hs:83:28:
- Couldn't match type `Attempt t0 -> Attempt (HElemOf l0)'
- with `Attempt (HElemOf rs)'
- Expected type: f (Attempt (HNth n0 l0) -> Attempt (HElemOf l0))
- Actual type: f (Attempt (WaitOpResult (WaitOps rs)))
+T5439.hs:83:33:
+ Couldn't match expected type `Attempt (WaitOpResult (WaitOps rs))'
+ with actual type `Attempt (HNth n0 l0) -> Attempt (HElemOf l0)'
Relevant bindings include
registerWaitOp :: WaitOps rs
-> f (Attempt (WaitOpResult (WaitOps rs))) -> IO Bool
@@ -13,10 +11,13 @@ T5439.hs:83:28:
(bound at T5439.hs:62:22)
register :: Bool -> Peano n -> WaitOps (HDrop n rs) -> IO Bool
(bound at T5439.hs:65:9)
- In the first argument of `complete', namely `ev'
- In the expression: complete ev
+ In the second argument of `($)', namely
+ `inj $ Failure (e :: SomeException)'
In a stmt of a 'do' block:
c <- complete ev $ inj $ Failure (e :: SomeException)
+ In the expression:
+ do { c <- complete ev $ inj $ Failure (e :: SomeException);
+ return $ c || not first }
T5439.hs:83:39:
Couldn't match expected type `Peano n0'
diff --git a/testsuite/tests/indexed-types/should_fail/T6123.stderr b/testsuite/tests/indexed-types/should_fail/T6123.stderr
index 0a82222f61..4f7f6919f4 100644
--- a/testsuite/tests/indexed-types/should_fail/T6123.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T6123.stderr
@@ -1,6 +1,6 @@
T6123.hs:10:14:
- Couldn't match expected type `a0' with actual type `Id a0'
+ Occurs check: cannot construct the infinite type: a0 ~ Id a0
The type variable `a0' is ambiguous
Possible cause: the monomorphism restriction applied to:
`cundefined'
diff --git a/testsuite/tests/polykinds/PolyKinds02.stderr b/testsuite/tests/polykinds/PolyKinds02.stderr
index 3c61552662..60e00d5c96 100644
--- a/testsuite/tests/polykinds/PolyKinds02.stderr
+++ b/testsuite/tests/polykinds/PolyKinds02.stderr
@@ -1,6 +1,5 @@
PolyKinds02.hs:13:16:
- Kind mis-match
The second argument of `Vec' should have kind `Nat',
- but `Nat' has kind `*'
+ but `Nat' has kind `*'
In the type signature for `vec': vec :: Vec Nat Nat
diff --git a/testsuite/tests/polykinds/PolyKinds04.stderr b/testsuite/tests/polykinds/PolyKinds04.stderr
index 484b0991ab..2796b1a898 100644
--- a/testsuite/tests/polykinds/PolyKinds04.stderr
+++ b/testsuite/tests/polykinds/PolyKinds04.stderr
@@ -1,6 +1,8 @@
-
-PolyKinds04.hs:5:16:
- Expecting one more argument to `Maybe'
- In the type `A Maybe'
- In the definition of data constructor `B1'
- In the data declaration for `B'
+
+PolyKinds04.hs:5:16:
+ Expecting one more argument to `Maybe'
+ The first argument of `A' should have kind `*',
+ but `Maybe' has kind `* -> *'
+ In the type `A Maybe'
+ In the definition of data constructor `B1'
+ In the data declaration for `B'
diff --git a/testsuite/tests/rename/should_fail/rnfail026.stderr b/testsuite/tests/rename/should_fail/rnfail026.stderr
index 775899bec5..3a4ae49224 100644
--- a/testsuite/tests/rename/should_fail/rnfail026.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail026.stderr
@@ -1,8 +1,7 @@
rnfail026.hs:16:35:
- Kind mis-match
The first argument of `Monad' should have kind `* -> *',
- but `Set a' has kind `*'
+ but `Set a' has kind `*'
In the instance declaration for `Monad (forall a. Eq a => Set a)'
rnfail026.hs:19:10:
diff --git a/testsuite/tests/typecheck/should_compile/tc211.stderr b/testsuite/tests/typecheck/should_compile/tc211.stderr
index 3fc5e256a6..998cd76f5e 100644
--- a/testsuite/tests/typecheck/should_compile/tc211.stderr
+++ b/testsuite/tests/typecheck/should_compile/tc211.stderr
@@ -1,6 +1,6 @@
tc211.hs:15:22:
- Couldn't match type `forall a1. a1 -> a1' with `a -> a'
+ Couldn't match type `forall a6. a6 -> a6' with `a -> a'
Expected type: [a -> a]
Actual type: [forall a. a -> a]
In the first argument of `head', namely `foo'
@@ -14,9 +14,9 @@ tc211.hs:15:22:
(head foo) foo
tc211.hs:70:9:
- Couldn't match type `forall a2. a2 -> a2' with `a1 -> a1'
+ Couldn't match type `forall a7. a7 -> a7' with `a6 -> a6'
Expected type: List (forall a. a -> a)
- -> (forall a. a -> a) -> a1 -> a1
+ -> (forall a. a -> a) -> a6 -> a6
Actual type: List (forall a. a -> a)
-> (forall a. a -> a) -> forall a. a -> a
In the expression:
diff --git a/testsuite/tests/typecheck/should_fail/AssocTyDef04.stderr b/testsuite/tests/typecheck/should_fail/AssocTyDef04.stderr
index b7bc7c2fbe..e02758b288 100644
--- a/testsuite/tests/typecheck/should_fail/AssocTyDef04.stderr
+++ b/testsuite/tests/typecheck/should_fail/AssocTyDef04.stderr
@@ -1,6 +1,7 @@
AssocTyDef04.hs:6:18:
Expecting one more argument to `Maybe'
+ Expected kind `*', but `Maybe' has kind `* -> *'
In the type `Maybe'
In the type instance declaration for `Typ'
In the class declaration for `Cls'
diff --git a/testsuite/tests/typecheck/should_fail/T1633.stderr b/testsuite/tests/typecheck/should_fail/T1633.stderr
index 8b3e8fd8a2..bdfa10ad59 100644
--- a/testsuite/tests/typecheck/should_fail/T1633.stderr
+++ b/testsuite/tests/typecheck/should_fail/T1633.stderr
@@ -1,6 +1,5 @@
T1633.hs:6:18:
- Kind mis-match
The first argument of `Functor' should have kind `* -> *',
- but `Bool' has kind `*'
+ but `Bool' has kind `*'
In the instance declaration for `Functor Bool'
diff --git a/testsuite/tests/typecheck/should_fail/T2994.stderr b/testsuite/tests/typecheck/should_fail/T2994.stderr
index feceed77b5..7c797afb75 100644
--- a/testsuite/tests/typecheck/should_fail/T2994.stderr
+++ b/testsuite/tests/typecheck/should_fail/T2994.stderr
@@ -1,10 +1,14 @@
T2994.hs:11:10:
Expecting one more argument to `MonadReader Int'
+ Expected a constraint,
+ but `MonadReader Int' has kind `* -> Constraint'
In the instance declaration for `MonadReader Int'
T2994.hs:13:23:
Expecting one more argument to `Reader' r'
+ The first argument of `MonadReader' should have kind `*',
+ but `Reader' r' has kind `* -> *'
In the instance declaration for `MonadReader (Reader' r)'
T2994.hs:15:10:
diff --git a/testsuite/tests/typecheck/should_fail/T3540.stderr b/testsuite/tests/typecheck/should_fail/T3540.stderr
index 6b85638e1e..83bcbf1f85 100644
--- a/testsuite/tests/typecheck/should_fail/T3540.stderr
+++ b/testsuite/tests/typecheck/should_fail/T3540.stderr
@@ -1,20 +1,20 @@
T3540.hs:4:12:
- Predicate `a ~ Int' used as a type
+ Expected a type, but `a ~ Int' has kind `Constraint'
In the type signature for `thing': thing :: a ~ Int
T3540.hs:7:20:
- Predicate `a ~ Int' used as a type
+ Expected a type, but `a ~ Int' has kind `Constraint'
In the type signature for `thing1': thing1 :: Int -> (a ~ Int)
T3540.hs:10:13:
- Predicate `a ~ Int' used as a type
+ Expected a type, but `a ~ Int' has kind `Constraint'
In the type signature for `thing2': thing2 :: (a ~ Int) -> Int
T3540.hs:13:12:
- Predicate `?dude :: Int' used as a type
+ Expected a type, but `?dude :: Int' has kind `Constraint'
In the type signature for `thing3': thing3 :: (?dude :: Int) -> Int
T3540.hs:16:11:
- Predicate `Eq a' used as a type
+ Expected a type, but `Eq a' has kind `Constraint'
In the type signature for `thing4': thing4 :: (Eq a) -> Int
diff --git a/testsuite/tests/typecheck/should_fail/tcfail028.stderr b/testsuite/tests/typecheck/should_fail/tcfail028.stderr
index 6b573bfa07..53e3f7614e 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail028.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail028.stderr
@@ -1,6 +1,7 @@
-
-tcfail028.hs:4:17:
- Expecting one more argument to `A a'
- In the type `A a'
- In the definition of data constructor `B'
- In the data declaration for `A'
+
+tcfail028.hs:4:17:
+ Expecting one more argument to `A a'
+ Expected a type, but `A a' has kind `k0 -> *'
+ In the type `A a'
+ In the definition of data constructor `B'
+ In the data declaration for `A'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail036.stderr b/testsuite/tests/typecheck/should_fail/tcfail036.stderr
index 7cce75c5d2..98d1722787 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail036.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail036.stderr
@@ -6,4 +6,6 @@ tcfail036.hs:6:10:
tcfail036.hs:9:13:
Expecting one more argument to `Num'
+ The first argument of `Eq' should have kind `*',
+ but `Num' has kind `* -> Constraint'
In the instance declaration for `Eq Num'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail057.stderr b/testsuite/tests/typecheck/should_fail/tcfail057.stderr
index da5a480f8c..9399e91486 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail057.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail057.stderr
@@ -1,4 +1,4 @@
tcfail057.hs:5:7:
- Predicate `RealFrac a' used as a type
+ Expected a type, but `RealFrac a' has kind `Constraint'
In the type signature for `f': f :: (RealFrac a) -> a -> a
diff --git a/testsuite/tests/typecheck/should_fail/tcfail058.stderr b/testsuite/tests/typecheck/should_fail/tcfail058.stderr
index 6214d27498..880bef69e3 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail058.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail058.stderr
@@ -1,4 +1,5 @@
tcfail058.hs:6:7:
Expecting one more argument to `Array a'
+ Expected a constraint, but `Array a' has kind `* -> *'
In the type signature for `f': f :: Array a => a -> b
diff --git a/testsuite/tests/typecheck/should_fail/tcfail063.stderr b/testsuite/tests/typecheck/should_fail/tcfail063.stderr
index 62e3f17ca8..35d4f406a7 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail063.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail063.stderr
@@ -1,4 +1,5 @@
tcfail063.hs:6:9:
Expecting one more argument to `Num'
+ Expected a constraint, but `Num' has kind `* -> Constraint'
In the type signature for `moby': moby :: Num => Int -> a -> Int
diff --git a/testsuite/tests/typecheck/should_fail/tcfail110.stderr b/testsuite/tests/typecheck/should_fail/tcfail110.stderr
index 735ef3c823..91ba52195d 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail110.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail110.stderr
@@ -1,5 +1,6 @@
tcfail110.hs:8:30:
Expecting one more argument to `Foo a'
+ Expected a type, but `Foo a' has kind `* -> *'
In the type signature for `bar':
bar :: String -> (forall a. Foo a) -> IO ()
diff --git a/testsuite/tests/typecheck/should_fail/tcfail113.stderr b/testsuite/tests/typecheck/should_fail/tcfail113.stderr
index 68e63c416b..2584b46bda 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail113.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail113.stderr
@@ -1,12 +1,12 @@
tcfail113.hs:12:7:
Expecting one more argument to `Maybe'
+ Expected kind `*', but `Maybe' has kind `* -> *'
In the type signature for `f': f :: [Maybe]
tcfail113.hs:15:8:
- Kind mis-match
The first argument of `T' should have kind `* -> *',
- but `Int' has kind `*'
+ but `Int' has kind `*'
In the type signature for `g': g :: T Int
tcfail113.hs:18:6:
diff --git a/testsuite/tests/typecheck/should_fail/tcfail132.stderr b/testsuite/tests/typecheck/should_fail/tcfail132.stderr
index bfe7fc3ab7..91228b86b5 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail132.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail132.stderr
@@ -1,7 +1,6 @@
-
-tcfail132.hs:17:37:
- Kind mis-match
- The first argument of `T' should have kind `* -> * -> * -> *',
- but `Object f' f t' has kind `* -> * -> *'
- In the type `T (Object f' f t) (DUnit t)'
- In the type declaration for `LiftObject'
+
+tcfail132.hs:17:37:
+ The first argument of `T' should have kind `* -> * -> * -> *',
+ but `Object f' f t' has kind `* -> * -> *'
+ In the type `T (Object f' f t) (DUnit t)'
+ In the type declaration for `LiftObject'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail134.stderr b/testsuite/tests/typecheck/should_fail/tcfail134.stderr
index 9634300266..721a2f3312 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail134.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail134.stderr
@@ -1,5 +1,6 @@
tcfail134.hs:5:33:
Expecting one more argument to `XML'
+ Expected a type, but `XML' has kind `* -> Constraint'
In the type `a -> XML'
In the class declaration for `XML'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail135.stderr b/testsuite/tests/typecheck/should_fail/tcfail135.stderr
index 4db48083f9..6e6379f63e 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail135.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail135.stderr
@@ -1,5 +1,6 @@
tcfail135.hs:6:23:
Expecting one more argument to `f'
+ Expected a type, but `f' has kind `k0 -> *'
In the type `f a -> f'
In the class declaration for `Foo'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail136.stderr b/testsuite/tests/typecheck/should_fail/tcfail136.stderr
index c1071a11ec..745aac23cf 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail136.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail136.stderr
@@ -1,6 +1,7 @@
-
-tcfail136.hs:9:35:
- Expecting one more argument to `SymDict'
- In the type `SymDict'
- In the definition of data constructor `SymTable'
- In the data declaration for `SymTable'
+
+tcfail136.hs:9:35:
+ Expecting one more argument to `SymDict'
+ Expected a type, but `SymDict' has kind `* -> *'
+ In the type `SymDict'
+ In the definition of data constructor `SymTable'
+ In the data declaration for `SymTable'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail146.stderr b/testsuite/tests/typecheck/should_fail/tcfail146.stderr
index 433327a089..5b835c1a37 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail146.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail146.stderr
@@ -1,6 +1,6 @@
-
-tcfail146.hs:7:22:
- Predicate `SClass a' used as a type
- In the type `SClass a'
- In the definition of data constructor `SCon'
- In the data declaration for `SData'
+
+tcfail146.hs:7:22:
+ Expected a type, but `SClass a' has kind `Constraint'
+ In the type `SClass a'
+ In the definition of data constructor `SCon'
+ In the data declaration for `SData'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail147.stderr b/testsuite/tests/typecheck/should_fail/tcfail147.stderr
index f5aa074a80..cda7223923 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail147.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail147.stderr
@@ -1,6 +1,7 @@
-
-tcfail147.hs:7:19:
- Expecting one more argument to `XClass'
- In the type `XClass'
- In the definition of data constructor `XCon'
- In the data declaration for `XData'
+
+tcfail147.hs:7:19:
+ Expecting one more argument to `XClass'
+ Expected a type, but `XClass' has kind `k0 -> Constraint'
+ In the type `XClass'
+ In the definition of data constructor `XCon'
+ In the data declaration for `XData'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail148.stderr b/testsuite/tests/typecheck/should_fail/tcfail148.stderr
index 252ffec3c0..22073f51c2 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail148.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail148.stderr
@@ -1,6 +1,7 @@
tcfail148.hs:5:28:
Expecting one more argument to `List'
+ Expected a type, but `List' has kind `* -> *'
In the type `List'
In the definition of data constructor `Cons'
In the data declaration for `List'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail151.stderr b/testsuite/tests/typecheck/should_fail/tcfail151.stderr
index c7dce325a0..f1884f3d32 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail151.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail151.stderr
@@ -4,4 +4,5 @@ tcfail151.hs:1:14: Warning:
tcfail151.hs:8:6:
Expecting one more argument to `Name a'
+ Expected a constraint, but `Name a' has kind `* -> Constraint'
In the data declaration for `Exp'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail158.stderr b/testsuite/tests/typecheck/should_fail/tcfail158.stderr
index a9e9eebf76..46385716fb 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail158.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail158.stderr
@@ -1,4 +1,5 @@
tcfail158.hs:14:19:
Expecting one more argument to `Val v'
+ Expected a type, but `Val v' has kind `* -> *'
In the type signature for `bar': bar :: forall v. Val v
diff --git a/testsuite/tests/typecheck/should_fail/tcfail160.stderr b/testsuite/tests/typecheck/should_fail/tcfail160.stderr
index 33cbbbb8f1..1be65a6038 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail160.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail160.stderr
@@ -1,7 +1,5 @@
tcfail160.hs:7:8:
- Kind mis-match
The first argument of `T' should have kind `* -> *',
- but `Int' has kind `*'
- In the type signature for `g':
- g :: T Int
+ but `Int' has kind `*'
+ In the type signature for `g': g :: T Int
diff --git a/testsuite/tests/typecheck/should_fail/tcfail161.stderr b/testsuite/tests/typecheck/should_fail/tcfail161.stderr
index 09f6b52404..21d8c1b060 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail161.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail161.stderr
@@ -1,4 +1,5 @@
tcfail161.hs:5:7:
Expecting one more argument to `Maybe'
+ Expected kind `*', but `Maybe' has kind `* -> *'
In the type signature for `f': f :: [Maybe]
diff --git a/testsuite/tests/typecheck/should_fail/tcfail162.stderr b/testsuite/tests/typecheck/should_fail/tcfail162.stderr
index de2b3129b9..2563233b78 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail162.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail162.stderr
@@ -1,6 +1,7 @@
tcfail162.hs:10:33:
Expecting one more argument to `ForeignPtr'
+ Expected a type, but `ForeignPtr' has kind `* -> *'
In the type `ForeignPtr'
In the definition of data constructor `Foo'
In the data declaration for `Foo'
diff --git a/testsuite/tests/typecheck/should_fail/tcfail212.stderr b/testsuite/tests/typecheck/should_fail/tcfail212.stderr
index 66f0bb2e1f..a94496181b 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail212.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail212.stderr
@@ -1,6 +1,8 @@
tcfail212.hs:10:7:
Expecting one more argument to `Maybe'
+ The first argument of a tuple should have kind `*',
+ but `Maybe' has kind `* -> *'
In the type signature for `f': f :: (Maybe, Either Int)
tcfail212.hs:13:7: