Follow error message changes
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 30 Nov 2011 01:06:46 +0000 (01:06 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Wed, 30 Nov 2011 01:06:46 +0000 (01:06 +0000)
I think these are a consequence of my uType_defer fix to
Trac #5631

18 files changed:
testsuite/tests/gadt/rw.stderr
testsuite/tests/indexed-types/should_fail/T2664.stderr
testsuite/tests/simplCore/should_compile/simpl017.stderr
testsuite/tests/typecheck/should_fail/T2688.stderr
testsuite/tests/typecheck/should_fail/T3592.stderr
testsuite/tests/typecheck/should_fail/T3950.stderr
testsuite/tests/typecheck/should_fail/mc19.stderr
testsuite/tests/typecheck/should_fail/mc21.stderr
testsuite/tests/typecheck/should_fail/mc22.stderr
testsuite/tests/typecheck/should_fail/tcfail065.stderr
testsuite/tests/typecheck/should_fail/tcfail068.stderr
testsuite/tests/typecheck/should_fail/tcfail103.stderr
testsuite/tests/typecheck/should_fail/tcfail174.stderr
testsuite/tests/typecheck/should_fail/tcfail179.stderr
testsuite/tests/typecheck/should_fail/tcfail191.stderr
testsuite/tests/typecheck/should_fail/tcfail192.stderr
testsuite/tests/typecheck/should_fail/tcfail193.stderr
testsuite/tests/typecheck/should_fail/tcfail206.stderr

index 612c809..4c0c0ce 100644 (file)
@@ -1,20 +1,19 @@
-
-rw.hs:14:42:
-    Couldn't match type `a' with `Int'
-      `a' is a rigid type variable bound by
-          the type signature for writeInt :: T a -> IORef a -> IO ()
-          at rw.hs:13:1
-    Expected type: IORef Int
-      Actual type: IORef a
-    In the first argument of `writeIORef', namely `ref'
-    In the expression: writeIORef ref (1 :: Int)
-
-rw.hs:19:34:
-    Couldn't match type `a' with `Bool'
-      `a' is a rigid type variable bound by
-          the type signature for readBool :: T a -> IORef a -> IO ()
-          at rw.hs:17:1
-    Expected type: IORef Bool
-      Actual type: IORef a
-    In the first argument of `readIORef', namely `ref'
-    In the first argument of `(>>=)', namely `readIORef ref'
+\r
+rw.hs:14:47:\r
+    Couldn't match type `a' with `Int'\r
+      `a' is a rigid type variable bound by\r
+          the type signature for writeInt :: T a -> IORef a -> IO ()\r
+          at rw.hs:13:1\r
+    In the second argument of `writeIORef', namely `(1 :: Int)'\r
+    In the expression: writeIORef ref (1 :: Int)\r
+    In a case alternative: ~(Li x) -> writeIORef ref (1 :: Int)\r
+\r
+rw.hs:19:51:\r
+    Couldn't match type `a' with `Bool'\r
+      `a' is a rigid type variable bound by\r
+          the type signature for readBool :: T a -> IORef a -> IO ()\r
+          at rw.hs:17:1\r
+    Expected type: a -> Bool\r
+      Actual type: Bool -> Bool\r
+    In the second argument of `(.)', namely `not'\r
+    In the second argument of `(>>=)', namely `(print . not)'\r
index 6deebb6..a4a1a24 100644 (file)
@@ -1,6 +1,6 @@
 \r
-T2664.hs:31:78:\r
-    Could not deduce (a ~ b)\r
+T2664.hs:31:33:\r
+    Could not deduce (Dual b ~ Dual a)\r
     from the context (Connect a, Connect b)\r
       bound by the instance declaration at T2664.hs:22:10-52\r
     or from ((a :*: b) ~ Dual c, c ~ Dual (a :*: b))\r
@@ -8,13 +8,11 @@ T2664.hs:31:78:
                  newPChan :: ((a :*: b) ~ Dual c, c ~ Dual (a :*: b)) =>\r
                              IO (PChan (a :*: b), PChan c)\r
       at T2664.hs:(23,5)-(31,87)\r
-      `a' is a rigid type variable bound by\r
-          the instance declaration at T2664.hs:22:19\r
-      `b' is a rigid type variable bound by\r
-          the instance declaration at T2664.hs:22:30\r
-    Expected type: Dual (Dual b)\r
-      Actual type: a\r
-    In the third argument of `pchoose', namely `newPChan'\r
-    In the second argument of `E', namely `(pchoose Left v newPChan)'\r
+    NB: `Dual' is a type function, and may not be injective\r
+    Expected type: c\r
+      Actual type: Dual b :+: Dual a\r
+    Expected type: PChan c\r
+      Actual type: PChan (Dual b :+: Dual a)\r
+    In the return type of a call of `E'\r
     In the expression:\r
       E (pchoose Right v newPChan) (pchoose Left v newPChan)\r
index d82014b..325920f 100644 (file)
@@ -1,20 +1,20 @@
-
-simpl017.hs:44:12:
-    Couldn't match expected type `forall v. [E m i] -> E' v m a'
-                with actual type `[E m i] -> E' v0 m0 e0'
-    In the first argument of `return', namely `f'
-    In a stmt of a 'do' block: return f
-    In the first argument of `E', namely
-      `(do { let ix :: [E m i] -> m i
-                 ix [i] = runE i
-                 {-# INLINE f #-}
-                 ....;
-             return f })'
-
-simpl017.hs:63:5:
-    Couldn't match expected type `t0 -> t1'
-                with actual type `forall v. [E m0 Int] -> E' v m0 Int'
-    The function `a' is applied to one argument,
-    but its type `forall v. [E m0 Int] -> E' v m0 Int' has none
-    In the first argument of `plus', namely `a [one]'
-    In a stmt of a 'do' block: a [one] `plus` a [one]
+\r
+simpl017.hs:44:12:\r
+    Couldn't match expected type `forall v. [E m i] -> E' v m a'\r
+                with actual type `[E m i] -> E' v0 m a'\r
+    In the first argument of `return', namely `f'\r
+    In a stmt of a 'do' block: return f\r
+    In the first argument of `E', namely\r
+      `(do { let ix :: [E m i] -> m i\r
+                 ix [i] = runE i\r
+                 {-# INLINE f #-}\r
+                 ....;\r
+             return f })'\r
+\r
+simpl017.hs:63:5:\r
+    Couldn't match expected type `t0 -> t1'\r
+                with actual type `forall v. [E m0 Int] -> E' v m0 Int'\r
+    The function `a' is applied to one argument,\r
+    but its type `forall v. [E m0 Int] -> E' v m0 Int' has none\r
+    In the first argument of `plus', namely `a [one]'\r
+    In a stmt of a 'do' block: a [one] `plus` a [one]\r
index 817c720..a658d73 100644 (file)
@@ -1,5 +1,5 @@
 \r
-T2688.hs:8:14:\r
+T2688.hs:8:22:\r
     Could not deduce (s ~ v)\r
     from the context (VectorSpace v s)\r
       bound by the class declaration for `VectorSpace'\r
@@ -8,5 +8,6 @@ T2688.hs:8:14:
           the class declaration for `VectorSpace' at T2688.hs:5:21\r
       `v' is a rigid type variable bound by\r
           the class declaration for `VectorSpace' at T2688.hs:5:19\r
+    In the second argument of `(/)', namely `s'\r
+    In the second argument of `(*^)', namely `(1 / s)'\r
     In the expression: v *^ (1 / s)\r
-    In an equation for `^/': v ^/ s = v *^ (1 / s)\r
index ce3eb90..c2c96cc 100644 (file)
@@ -6,9 +6,8 @@ T3592.hs:8:5:
     In the expression: show\r
     In an equation for `f': f = show\r
 \r
-T3592.hs:11:12:\r
+T3592.hs:11:7:\r
     No instance for (Show a)\r
-      arising from a use of `x'\r
-    In the first argument of `show', namely `x'\r
+      arising from a use of `show'\r
     In the expression: show x\r
     In an equation for `g': g x = show x\r
index 8eb1ab9..8e6f948 100644 (file)
@@ -1,7 +1,7 @@
-
-T3950.hs:15:13:
-    Couldn't match expected type `Id p' with actual type `Id p0 x0'
-    Expected type: w (Id p)
-      Actual type: Sealed (Id p0 x0)
-    In the first argument of `Just', namely rp'
-    In the expression: Just rp'
+\r
+T3950.hs:15:13:\r
+    Couldn't match expected type `Id p' with actual type `Id p x0'\r
+    Expected type: w (Id p)\r
+      Actual type: Sealed (Id p x0)\r
+    In the first argument of `Just', namely rp'\r
+    In the expression: Just rp'\r
index f77da6f..b75e90a 100644 (file)
@@ -1,7 +1,9 @@
-
-mc19.hs:10:31:
-    Occurs check: cannot construct the infinite type: a0 = [a0]
-    Expected type: [a] -> [a]
-      Actual type: [a0] -> [[a0]]
-    In the expression: inits
-    In a stmt of a monad comprehension: then inits
+\r
+mc19.hs:10:31:\r
+    Couldn't match type `a' with `[a]'\r
+      `a' is a rigid type variable bound by\r
+          a type expected by the context: [a] -> [a] at mc19.hs:10:26\r
+    Expected type: [a] -> [a]\r
+      Actual type: [a] -> [[a]]\r
+    In the expression: inits\r
+    In a stmt of a monad comprehension: then inits\r
index c712b4b..1e958c8 100644 (file)
@@ -1,9 +1,9 @@
-
-mc21.hs:12:26:
-    Couldn't match type `a' with `[a]'
-      `a' is a rigid type variable bound by
-          a type expected by the context: [a] -> [[a]] at mc21.hs:12:9
-    Expected type: [a] -> [[a]]
-      Actual type: [[a]] -> [[a]]
-    In the return type of a call of `take'
-    In the expression: take 5
+\r
+mc21.hs:12:26:\r
+    Couldn't match type `a' with `[a]'\r
+      `a' is a rigid type variable bound by\r
+          a type expected by the context: [a] -> [[a]] at mc21.hs:12:9\r
+    Expected type: [a] -> [[a]]\r
+      Actual type: [a] -> [a]\r
+    In the return type of a call of `take'\r
+    In the expression: take 5\r
index 943b762..57d9a01 100644 (file)
@@ -1,9 +1,9 @@
-
-mc22.hs:10:26:
-    Couldn't match type `a' with `t0 a'
-      `a' is a rigid type variable bound by
-          a type expected by the context: [a] -> [t0 a] at mc22.hs:10:9
-    Expected type: [a] -> [t0 a]
-      Actual type: [t0 a] -> [t0 a]
-    In the return type of a call of `take'
-    In the expression: take 5
+\r
+mc22.hs:10:26:\r
+    Couldn't match type `a' with `t0 a'\r
+      `a' is a rigid type variable bound by\r
+          a type expected by the context: [a] -> [t0 a] at mc22.hs:10:9\r
+    Expected type: [a] -> [t0 a]\r
+      Actual type: [a] -> [a]\r
+    In the return type of a call of `take'\r
+    In the expression: take 5\r
index da855d3..0621cd7 100644 (file)
@@ -1,12 +1,11 @@
 \r
-tcfail065.hs:29:18:\r
+tcfail065.hs:29:20:\r
     Couldn't match type `x1' with `x'\r
       `x1' is a rigid type variable bound by\r
            the type signature for setX :: x1 -> X x -> X x\r
            at tcfail065.hs:29:3\r
       `x' is a rigid type variable bound by\r
           the instance declaration at tcfail065.hs:28:18\r
-    Expected type: X x1\r
-      Actual type: X x\r
-    In the return type of a call of `X'\r
+    In the first argument of `X', namely `x'\r
     In the expression: X x\r
+    In an equation for `setX': setX x (X _) = X x\r
index 52adc6c..286d0e8 100644 (file)
@@ -1,24 +1,24 @@
 \r
 tcfail068.hs:14:9:\r
-    Could not deduce (s ~ s1)\r
+    Could not deduce (s1 ~ s)\r
     from the context (Constructed a)\r
       bound by the type signature for\r
                  itgen :: Constructed a => (Int, Int) -> a -> IndTree s a\r
       at tcfail068.hs:(12,1)-(14,31)\r
+      `s1' is a rigid type variable bound by\r
+           a type expected by the context: GHC.ST.ST s1 (IndTree s a)\r
+           at tcfail068.hs:13:9\r
       `s' is a rigid type variable bound by\r
           the type signature for\r
             itgen :: Constructed a => (Int, Int) -> a -> IndTree s a\r
           at tcfail068.hs:12:1\r
-      `s1' is a rigid type variable bound by\r
-           a type expected by the context: GHC.ST.ST s1 (IndTree s a)\r
-           at tcfail068.hs:13:9\r
-    Expected type: GHC.ST.ST s1 (IndTree s a)\r
+    Expected type: GHC.ST.ST s (IndTree s1 a)\r
       Actual type: GHC.ST.ST s (STArray s (Int, Int) a)\r
     In the return type of a call of `newSTArray'\r
     In the first argument of `runST', namely\r
       `(newSTArray ((1, 1), n) x)'\r
 \r
-tcfail068.hs:20:9:\r
+tcfail068.hs:19:21:\r
     Could not deduce (s ~ s1)\r
     from the context (Constructed a)\r
       bound by the type signature for\r
@@ -33,11 +33,10 @@ tcfail068.hs:20:9:
       `s1' is a rigid type variable bound by\r
            a type expected by the context: GHC.ST.ST s1 (IndTree s a)\r
            at tcfail068.hs:18:9\r
-    Expected type: GHC.ST.ST s1 ()\r
-      Actual type: GHC.ST.ST s ()\r
-    In the return type of a call of `writeSTArray'\r
-    In the first argument of `(>>)', namely\r
-      `writeSTArray arr i (f val)'\r
+    Expected type: STArray s1 (Int, Int) a\r
+      Actual type: IndTree s a\r
+    In the first argument of `readSTArray', namely `arr'\r
+    In the first argument of `(>>=)', namely `readSTArray arr i'\r
 \r
 tcfail068.hs:24:35:\r
     Could not deduce (s ~ s1)\r
index 17fea5c..2602859 100644 (file)
@@ -1,11 +1,11 @@
 \r
-tcfail103.hs:15:13:\r
+tcfail103.hs:15:23:\r
     Couldn't match type `t' with `s'\r
       `t' is a rigid type variable bound by\r
           the type signature for f :: ST t Int at tcfail103.hs:11:1\r
       `s' is a rigid type variable bound by\r
           the type signature for g :: ST s Int at tcfail103.hs:15:9\r
-    Expected type: ST s Int\r
-      Actual type: ST t Int\r
-    In the return type of a call of `readSTRef'\r
+    Expected type: STRef s Int\r
+      Actual type: STRef t Int\r
+    In the first argument of `readSTRef', namely `v'\r
     In the expression: readSTRef v\r
index de8bb60..b9bdb0a 100644 (file)
@@ -1,23 +1,23 @@
-
-tcfail174.hs:9:10:
-    Couldn't match expected type `forall a. a -> a'
-                with actual type `a0 -> a0'
-    In the first argument of `Base', namely `id'
-    In the expression: Base id
-    In an equation for `g': g = Base id
-
-tcfail174.hs:13:14:
-    Couldn't match expected type `forall x. x -> a0'
-                with actual type `forall a. a -> a'
-    Expected type: Capture (forall x. x -> a0)
-      Actual type: Capture (forall a. a -> a)
-    In the first argument of `Capture', namely `g'
-    In the expression: Capture g
-
-tcfail174.hs:16:14:
-    Couldn't match expected type `forall x. x -> a0'
-                with actual type `forall a. a -> a'
-    Expected type: Capture (forall x. x -> a0)
-      Actual type: Capture (forall a. a -> a)
-    In the first argument of `Capture', namely `g'
-    In the expression: Capture g
+\r
+tcfail174.hs:9:10:\r
+    Couldn't match expected type `forall a. a -> a'\r
+                with actual type `a0 -> a0'\r
+    In the first argument of `Base', namely `id'\r
+    In the expression: Base id\r
+    In an equation for `g': g = Base id\r
+\r
+tcfail174.hs:13:14:\r
+    Couldn't match expected type `forall x. x -> a0'\r
+                with actual type `forall a. a -> a'\r
+    Expected type: Capture (forall x. x -> a0)\r
+      Actual type: Capture (forall a. a -> a)\r
+    In the first argument of `Capture', namely `g'\r
+    In the expression: Capture g\r
+\r
+tcfail174.hs:16:14:\r
+    Couldn't match expected type `forall x. x -> b'\r
+                with actual type `forall a. a -> a'\r
+    Expected type: Capture (forall x. x -> b)\r
+      Actual type: Capture (forall a. a -> a)\r
+    In the first argument of `Capture', namely `g'\r
+    In the expression: Capture g\r
index 48f5e26..6d723db 100644 (file)
@@ -1,14 +1,13 @@
 \r
-tcfail179.hs:14:37:\r
-    Couldn't match type `s' with `x'\r
-      `s' is a rigid type variable bound by\r
-          the type signature for run :: T s -> Int at tcfail179.hs:13:1\r
+tcfail179.hs:14:39:\r
+    Couldn't match type `x' with `s'\r
       `x' is a rigid type variable bound by\r
           a pattern with constructor\r
             T :: forall s x. (s -> (x -> s) -> (x, s, Int)) -> T s,\r
           in a case alternative\r
           at tcfail179.hs:14:14\r
-    Expected type: (s, x, Int)\r
-      Actual type: (x, s, Int)\r
-    In the return type of a call of `g'\r
+      `s' is a rigid type variable bound by\r
+          the type signature for run :: T s -> Int at tcfail179.hs:13:1\r
+    In the first argument of `g', namely `x'\r
     In the expression: g x id\r
+    In a pattern binding: (x, _, b) = g x id\r
index 178eebf..f69bd2c 100644 (file)
@@ -1,9 +1,9 @@
-
-tcfail191.hs:11:26:
-    Couldn't match type `a' with `[a]'
-      `a' is a rigid type variable bound by
-          a type expected by the context: [a] -> [[a]] at tcfail191.hs:11:9
-    Expected type: [a] -> [[a]]
-      Actual type: [[a]] -> [[a]]
-    In the return type of a call of `take'
-    In the expression: take 5
+\r
+tcfail191.hs:11:26:\r
+    Couldn't match type `a' with `[a]'\r
+      `a' is a rigid type variable bound by\r
+          a type expected by the context: [a] -> [[a]] at tcfail191.hs:11:9\r
+    Expected type: [a] -> [[a]]\r
+      Actual type: [a] -> [a]\r
+    In the return type of a call of `take'\r
+    In the expression: take 5\r
index a957fba..097c02f 100644 (file)
@@ -14,6 +14,6 @@ tcfail192.hs:10:26:
       `a' is a rigid type variable bound by\r
           a type expected by the context: [a] -> [[a]] at tcfail192.hs:10:9\r
     Expected type: [a] -> [[a]]\r
-      Actual type: [[a]] -> [[a]]\r
+      Actual type: [a] -> [a]\r
     In the return type of a call of `take'\r
     In the expression: take 5\r
index f19720f..988810e 100644 (file)
@@ -1,7 +1,9 @@
-
-tcfail193.hs:10:31:
-    Occurs check: cannot construct the infinite type: a0 = [a0]
-    Expected type: [a] -> [a]
-      Actual type: [a0] -> [[a0]]
-    In the expression: inits
-    In a stmt of a list comprehension: then inits
+\r
+tcfail193.hs:10:31:\r
+    Couldn't match type `a' with `[a]'\r
+      `a' is a rigid type variable bound by\r
+          a type expected by the context: [a] -> [a] at tcfail193.hs:10:26\r
+    Expected type: [a] -> [a]\r
+      Actual type: [a] -> [[a]]\r
+    In the expression: inits\r
+    In a stmt of a list comprehension: then inits\r
index fb812f1..f469475 100644 (file)
@@ -19,7 +19,7 @@ tcfail206.hs:11:5:
       `a' is a rigid type variable bound by\r
           the type signature for c :: a -> (a, Bool) at tcfail206.hs:11:1\r
     Expected type: a -> (a, Bool)\r
-      Actual type: Bool -> (Bool, Bool)\r
+      Actual type: a -> (a, a)\r
     In the expression: (True || False,)\r
     In an equation for `c': c = (True || False,)\r
 \r