Improve error messages around kind mismatches.
[ghc.git] / testsuite / tests / typecheck / should_fail / T7453.stderr
index c474460..77348c3 100644 (file)
@@ -1,45 +1,58 @@
 
-T7453.hs:10:30:
-    Couldn't match expected type ‘t1’ with actual type ‘t’
-      because type variable ‘t1’ would escape its scope
-    This (rigid, skolem) type variable is bound by
-      the type signature for z :: Id t1
-      at T7453.hs:8:16-19
-    Relevant bindings include
-      aux :: Id t1 (bound at T7453.hs:10:21)
-      z :: Id t1 (bound at T7453.hs:9:11)
-      v :: t (bound at T7453.hs:7:7)
-      cast1 :: t -> a (bound at T7453.hs:7:1)
-    In the first argument of ‘Id’, namely ‘v’
-    In the expression: Id v
+T7453.hs:10:30: error:
+    • Couldn't match expected type ‘t’ with actual type ‘p’
+        because type variable ‘t’ would escape its scope
+      This (rigid, skolem) type variable is bound by
+        the type signature for:
+          z :: forall t. Id t
+        at T7453.hs:8:11-19
+    • In the first argument of ‘Id’, namely ‘v’
+      In the expression: Id v
+      In an equation for ‘aux’: aux = Id v
+    • Relevant bindings include
+        aux :: Id t (bound at T7453.hs:10:21)
+        z :: Id t (bound at T7453.hs:9:11)
+        v :: p (bound at T7453.hs:7:7)
+        cast1 :: p -> a (bound at T7453.hs:7:1)
 
-T7453.hs:16:33:
-    Couldn't match expected type ‘t2’ with actual type ‘t’
-      because type variable ‘t2’ would escape its scope
-    This (rigid, skolem) type variable is bound by
-      the type signature for z :: () -> t2
-      at T7453.hs:14:16-22
-    Relevant bindings include
-      aux :: b -> t2 (bound at T7453.hs:16:21)
-      z :: () -> t2 (bound at T7453.hs:15:11)
-      v :: t (bound at T7453.hs:13:7)
-      cast2 :: t -> t1 (bound at T7453.hs:13:1)
-    In the first argument of ‘const’, namely ‘v’
-    In the expression: const v
+T7453.hs:16:33: error:
+    • Couldn't match expected type ‘t1’ with actual type ‘p’
+        because type variable ‘t1’ would escape its scope
+      This (rigid, skolem) type variable is bound by
+        the type signature for:
+          z :: forall t1. () -> t1
+        at T7453.hs:14:11-22
+    • In the first argument of ‘const’, namely ‘v’
+      In the expression: const v
+      In an equation for ‘aux’: aux = const v
+    • Relevant bindings include
+        aux :: b -> t1 (bound at T7453.hs:16:21)
+        z :: () -> t1 (bound at T7453.hs:15:11)
+        v :: p (bound at T7453.hs:13:7)
+        cast2 :: p -> t (bound at T7453.hs:13:1)
 
-T7453.hs:21:15:
-    Couldn't match expected type ‘t1’ with actual type ‘a’
-      because type variable ‘t1’ would escape its scope
-    This (rigid, skolem) type variable is bound by
-      the type signature for z :: t1
-      at T7453.hs:20:16
-    Relevant bindings include
-      aux :: forall b. b -> a (bound at T7453.hs:22:21)
-      z :: t1 (bound at T7453.hs:21:11)
-      v :: a (bound at T7453.hs:19:7)
-      cast3 :: a -> t (bound at T7453.hs:19:1)
-    In the expression: v
-    In an equation for ‘z’:
-        z = v
-          where
-              aux = const v
+T7453.hs:21:15: error:
+    • Couldn't match expected type ‘t1’ with actual type ‘p’
+        because type variable ‘t1’ would escape its scope
+      This (rigid, skolem) type variable is bound by
+        the type signature for:
+          z :: forall t1. t1
+        at T7453.hs:20:11-16
+    • In the expression: v
+      In an equation for ‘z’:
+          z = v
+            where
+                aux = const v
+      In an equation for ‘cast3’:
+          cast3 v
+            = z
+            where
+                z :: t
+                z = v
+                  where
+                      aux = const v
+    • Relevant bindings include
+        aux :: forall b. b -> p (bound at T7453.hs:22:21)
+        z :: t1 (bound at T7453.hs:21:11)
+        v :: p (bound at T7453.hs:19:7)
+        cast3 :: p -> t (bound at T7453.hs:19:1)