diff options
author | Evan Laforge <qdunkan@gmail.com> | 2015-11-24 12:43:18 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-11-24 14:02:58 +0100 |
commit | c05fdddec71f9dc8ebe62d751ccf03367128072a (patch) | |
tree | 4afadb128af4af0f99dfb92fdbb9607bbeb64f04 /testsuite/tests | |
parent | f09f2470a76bb08b7f51d2f5663daa672b86f618 (diff) | |
download | haskell-c05fdddec71f9dc8ebe62d751ccf03367128072a.tar.gz |
Rearrange error msgs and add section markers (Trac #11014).
This puts the "Relevant bindings" section at the end.
It uses a TcErrors.Report Monoid to divide messages by importance and
then mappends them together. This is not the most efficient way since
there are various intermediate Reports and list appends, but it probably
doesn't matter since error messages shouldn't get that large, and are
usually prepended. In practice, everything is `important` except
`relevantBindings`, which is `supplementary`.
ErrMsg's errMsgShortDoc and errMsgExtraInfo were extracted into ErrDoc,
which has important, context, and suppelementary fields. Each of those
three sections is marked with a bullet character, '•' on unicode
terminals and '*' on ascii terminals. Since this breaks tons of tests,
I also modified testlib.normalise_errmsg to strip out '•'s.
--- Additional notes:
To avoid prepending * to an empty doc, I needed to filter empty docs.
This seemed less error-prone than trying to modify everyone who produces
SDoc to instead produce Maybe SDoc. So I added `Outputable.isEmpty`.
Unfortunately it needs a DynFlags, which is kind of bogus, but otherwise
I think I'd need another Empty case for SDoc, and then it couldn't be a
newtype any more.
ErrMsg's errMsgShortString is only used by the Show instance, which is
in turn only used by Show HscTypes.SourceError, which is in turn only
needed for the Exception instance. So it's probably possible to get rid
of errMsgShortString, but that would a be an unrelated cleanup.
Fixes #11014.
Test Plan: see above
Reviewers: austin, simonpj, thomie, bgamari
Reviewed By: thomie, bgamari
Subscribers: simonpj, nomeata, thomie
Differential Revision: https://phabricator.haskell.org/D1427
GHC Trac Issues: #11014
Diffstat (limited to 'testsuite/tests')
142 files changed, 501 insertions, 501 deletions
diff --git a/testsuite/tests/arrows/should_fail/T5380.stderr b/testsuite/tests/arrows/should_fail/T5380.stderr index bff48f5233..177183225c 100644 --- a/testsuite/tests/arrows/should_fail/T5380.stderr +++ b/testsuite/tests/arrows/should_fail/T5380.stderr @@ -5,12 +5,12 @@ T5380.hs:7:27: the type signature for: testB :: not_bool -> (() -> ()) -> () -> not_unit at T5380.hs:6:10 + In the expression: b + In the expression: proc () -> if b then f -< () else f -< () Relevant bindings include b :: not_bool (bound at T5380.hs:7:7) testB :: not_bool -> (() -> ()) -> () -> not_unit (bound at T5380.hs:7:1) - In the expression: b - In the expression: proc () -> if b then f -< () else f -< () T5380.hs:7:34: Couldn't match type ‘not_unit’ with ‘()’ @@ -20,8 +20,8 @@ T5380.hs:7:34: at T5380.hs:6:10 Expected type: () -> not_unit Actual type: () -> () + In the expression: f + In the command: f -< () Relevant bindings include testB :: not_bool -> (() -> ()) -> () -> not_unit (bound at T5380.hs:7:1) - In the expression: f - In the command: f -< () diff --git a/testsuite/tests/driver/T2507.stderr b/testsuite/tests/driver/T2507.stderr index 1a6e6f38f1..5cb9f41bc2 100644 --- a/testsuite/tests/driver/T2507.stderr +++ b/testsuite/tests/driver/T2507.stderr @@ -1,5 +1,5 @@ T2507.hs:5:7: error: - Couldn't match expected type `Int' with actual type `()' - In the expression: () - In an equation for `foo': foo = () + * Couldn't match expected type `Int' with actual type `()' + * In the expression: () + In an equation for `foo': foo = () diff --git a/testsuite/tests/driver/T6037.stderr b/testsuite/tests/driver/T6037.stderr index 3059288d10..efc778c023 100644 --- a/testsuite/tests/driver/T6037.stderr +++ b/testsuite/tests/driver/T6037.stderr @@ -1,5 +1,5 @@ T6037.hs:5:7: - Couldn't match expected type `Int' with actual type `()' - In the expression: () - In an equation for `f?o': f?o = () + * Couldn't match expected type `Int' with actual type `()' + * In the expression: () + In an equation for `f?o': f?o = () diff --git a/testsuite/tests/driver/T8959a.stderr b/testsuite/tests/driver/T8959a.stderr index 476b9ee0b1..96bc9dd72e 100644 --- a/testsuite/tests/driver/T8959a.stderr +++ b/testsuite/tests/driver/T8959a.stderr @@ -1,5 +1,5 @@ T8959a.hs:5:7: error: - Couldn't match expected type `Int -> Int' with actual type `()' - In the expression: () - In an equation for `foo': foo = () + * Couldn't match expected type `Int -> Int' with actual type `()' + * In the expression: () + In an equation for `foo': foo = () diff --git a/testsuite/tests/gadt/T3169.stderr b/testsuite/tests/gadt/T3169.stderr index 3e4a9504b2..12a39ebe51 100644 --- a/testsuite/tests/gadt/T3169.stderr +++ b/testsuite/tests/gadt/T3169.stderr @@ -7,10 +7,10 @@ T3169.hs:13:22: at T3169.hs:12:3 Expected type: Map a (Map b elt) Actual type: Map (a, b) elt + In the second argument of ‘lookup’, namely ‘m’ + In the expression: lookup a m :: Maybe (Map b elt) Relevant bindings include m :: Map (a, b) elt (bound at T3169.hs:12:17) b :: b (bound at T3169.hs:12:13) lookup :: (a, b) -> Map (a, b) elt -> Maybe elt (bound at T3169.hs:12:3) - In the second argument of ‘lookup’, namely ‘m’ - In the expression: lookup a m :: Maybe (Map b elt) diff --git a/testsuite/tests/gadt/T7558.stderr b/testsuite/tests/gadt/T7558.stderr index 4929982f70..3d09467402 100644 --- a/testsuite/tests/gadt/T7558.stderr +++ b/testsuite/tests/gadt/T7558.stderr @@ -7,7 +7,7 @@ T7558.hs:8:4: a pattern with constructor:
MkT :: forall a b. (a ~ Maybe b) => a -> Maybe b -> T a b,
in an equation for ‘f’
- Relevant bindings include
- f :: T a a -> Bool (bound at T7558.hs:8:1)
In the pattern: MkT x y
In an equation for ‘f’: f (MkT x y) = [x, y] `seq` True
+ Relevant bindings include
+ f :: T a a -> Bool (bound at T7558.hs:8:1)
diff --git a/testsuite/tests/gadt/gadt-escape1.stderr b/testsuite/tests/gadt/gadt-escape1.stderr index a8df3a598a..39d736adb8 100644 --- a/testsuite/tests/gadt/gadt-escape1.stderr +++ b/testsuite/tests/gadt/gadt-escape1.stderr @@ -11,7 +11,7 @@ gadt-escape1.hs:19:58: Possible fix: add a type signature for ‘weird1’ Expected type: t Actual type: ExpGADT t1 - Relevant bindings include - weird1 :: t (bound at gadt-escape1.hs:19:1) In the expression: a In a case alternative: Hidden (ExpInt _) a -> a + Relevant bindings include + weird1 :: t (bound at gadt-escape1.hs:19:1) diff --git a/testsuite/tests/gadt/gadt13.stderr b/testsuite/tests/gadt/gadt13.stderr index db3fb99717..ce56fe838e 100644 --- a/testsuite/tests/gadt/gadt13.stderr +++ b/testsuite/tests/gadt/gadt13.stderr @@ -10,7 +10,7 @@ gadt13.hs:15:13: ‘t’ is a rigid type variable bound by the inferred type of shw :: Term t1 -> t at gadt13.hs:15:1 Possible fix: add a type signature for ‘shw’ - Relevant bindings include - shw :: Term t1 -> t (bound at gadt13.hs:15:1) In the expression: ("I " ++) . shows t In an equation for ‘shw’: shw (I t) = ("I " ++) . shows t + Relevant bindings include + shw :: Term t1 -> t (bound at gadt13.hs:15:1) diff --git a/testsuite/tests/gadt/gadt7.stderr b/testsuite/tests/gadt/gadt7.stderr index 89c05c5637..e49cac1577 100644 --- a/testsuite/tests/gadt/gadt7.stderr +++ b/testsuite/tests/gadt/gadt7.stderr @@ -11,9 +11,9 @@ gadt7.hs:16:38: ‘t’ is a rigid type variable bound by the inferred type of i1b :: T t1 -> r -> t at gadt7.hs:16:1 Possible fix: add a type signature for ‘i1b’ + In the expression: y1 + In a case alternative: K -> y1 Relevant bindings include y1 :: r (bound at gadt7.hs:16:16) y :: r (bound at gadt7.hs:16:7) i1b :: T t1 -> r -> t (bound at gadt7.hs:16:1) - In the expression: y1 - In a case alternative: K -> y1 diff --git a/testsuite/tests/gadt/rw.stderr b/testsuite/tests/gadt/rw.stderr index 8b02f5c4d7..dcd3e10397 100644 --- a/testsuite/tests/gadt/rw.stderr +++ b/testsuite/tests/gadt/rw.stderr @@ -4,13 +4,13 @@ rw.hs:14:47: ‘a’ is a rigid type variable bound by the type signature for: writeInt :: T a -> IORef a -> IO () at rw.hs:12:12 + In the second argument of ‘writeIORef’, namely ‘(1 :: Int)’ + In the expression: writeIORef ref (1 :: Int) + In a case alternative: ~(Li x) -> writeIORef ref (1 :: Int) Relevant bindings include ref :: IORef a (bound at rw.hs:13:12) v :: T a (bound at rw.hs:13:10) writeInt :: T a -> IORef a -> IO () (bound at rw.hs:13:1) - In the second argument of ‘writeIORef’, namely ‘(1 :: Int)’ - In the expression: writeIORef ref (1 :: Int) - In a case alternative: ~(Li x) -> writeIORef ref (1 :: Int) rw.hs:19:51: Couldn't match type ‘a’ with ‘Bool’ @@ -19,9 +19,9 @@ rw.hs:19:51: at rw.hs:16:12 Expected type: a -> Bool Actual type: Bool -> Bool + In the second argument of ‘(.)’, namely ‘not’ + In the second argument of ‘(>>=)’, namely ‘(print . not)’ Relevant bindings include ref :: IORef a (bound at rw.hs:17:12) v :: T a (bound at rw.hs:17:10) readBool :: T a -> IORef a -> IO () (bound at rw.hs:17:1) - In the second argument of ‘(.)’, namely ‘not’ - In the second argument of ‘(>>=)’, namely ‘(print . not)’ diff --git a/testsuite/tests/ghci/scripts/Defer02.stderr b/testsuite/tests/ghci/scripts/Defer02.stderr index 4888e6958c..48ddf4b598 100644 --- a/testsuite/tests/ghci/scripts/Defer02.stderr +++ b/testsuite/tests/ghci/scripts/Defer02.stderr @@ -33,12 +33,12 @@ ../../typecheck/should_run/Defer01.hs:31:5: warning: Couldn't match expected type ‘Char -> t’ with actual type ‘Char’ - Relevant bindings include - f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) The function ‘e’ is applied to one argument, but its type ‘Char’ has none In the expression: e 'q' In an equation for ‘f’: f = e 'q' + Relevant bindings include + f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) ../../typecheck/should_run/Defer01.hs:34:8: warning: Couldn't match expected type ‘Char’ with actual type ‘a’ @@ -46,20 +46,20 @@ the type signature for: h :: a -> (Char, Char) at ../../typecheck/should_run/Defer01.hs:33:6 + In the expression: x + In the expression: (x, 'c') Relevant bindings include x :: a (bound at ../../typecheck/should_run/Defer01.hs:34:3) h :: a -> (Char, Char) (bound at ../../typecheck/should_run/Defer01.hs:34:1) - In the expression: x - In the expression: (x, 'c') ../../typecheck/should_run/Defer01.hs:39:17: warning: Couldn't match expected type ‘Bool’ with actual type ‘T a’ + In the first argument of ‘not’, namely ‘(K a)’ + In the expression: (not (K a)) Relevant bindings include a :: a (bound at ../../typecheck/should_run/Defer01.hs:39:3) i :: a -> () (bound at ../../typecheck/should_run/Defer01.hs:39:1) - In the first argument of ‘not’, namely ‘(K a)’ - In the expression: (not (K a)) ../../typecheck/should_run/Defer01.hs:43:5: warning: No instance for (MyClass a1) arising from a use of ‘myOp’ @@ -147,12 +147,12 @@ (deferred type error) *** Exception: ../../typecheck/should_run/Defer01.hs:31:5: error: Couldn't match expected type ‘Char -> t’ with actual type ‘Char’ - Relevant bindings include - f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) The function ‘e’ is applied to one argument, but its type ‘Char’ has none In the expression: e 'q' In an equation for ‘f’: f = e 'q' + Relevant bindings include + f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) (deferred type error) *** Exception: ../../typecheck/should_run/Defer01.hs:34:8: error: Couldn't match expected type ‘Char’ with actual type ‘a’ @@ -160,20 +160,20 @@ the type signature for: h :: a -> (Char, Char) at ../../typecheck/should_run/Defer01.hs:33:6 + In the expression: x + In the expression: (x, 'c') Relevant bindings include x :: a (bound at ../../typecheck/should_run/Defer01.hs:34:3) h :: a -> (Char, Char) (bound at ../../typecheck/should_run/Defer01.hs:34:1) - In the expression: x - In the expression: (x, 'c') (deferred type error) *** Exception: ../../typecheck/should_run/Defer01.hs:39:17: error: Couldn't match expected type ‘Bool’ with actual type ‘T a’ + In the first argument of ‘not’, namely ‘(K a)’ + In the expression: (not (K a)) Relevant bindings include a :: a (bound at ../../typecheck/should_run/Defer01.hs:39:3) i :: a -> () (bound at ../../typecheck/should_run/Defer01.hs:39:1) - In the first argument of ‘not’, namely ‘(K a)’ - In the expression: (not (K a)) (deferred type error) *** Exception: ../../typecheck/should_run/Defer01.hs:43:5: error: No instance for (MyClass a1) arising from a use of ‘myOp’ diff --git a/testsuite/tests/ghci/scripts/ghci050.stderr b/testsuite/tests/ghci/scripts/ghci050.stderr index 4b454bd8bf..31232b6b0b 100644 --- a/testsuite/tests/ghci/scripts/ghci050.stderr +++ b/testsuite/tests/ghci/scripts/ghci050.stderr @@ -4,10 +4,10 @@ with actual type ‘a’ ‘a’ is a rigid type variable bound by the instance declaration at <interactive>:5:10 + In the expression: a + In the expression: [a, b] Relevant bindings include b :: a (bound at <interactive>:5:43) a :: a (bound at <interactive>:5:41) asList :: (a, a) -> [ListableElem (a, a)] (bound at <interactive>:5:33) - In the expression: a - In the expression: [a, b] diff --git a/testsuite/tests/indexed-types/should_compile/PushedInAsGivens.stderr b/testsuite/tests/indexed-types/should_compile/PushedInAsGivens.stderr index b76aef8fd4..66b24174ae 100644 --- a/testsuite/tests/indexed-types/should_compile/PushedInAsGivens.stderr +++ b/testsuite/tests/indexed-types/should_compile/PushedInAsGivens.stderr @@ -5,19 +5,16 @@ PushedInAsGivens.hs:10:31: This (rigid, skolem) type variable is bound by the type signature for: foo :: (F Int ~ [a1]) => a1 -> Int at PushedInAsGivens.hs:9:20-44 + In the expression: y + In the first argument of ‘length’, namely ‘[x, y]’ Relevant bindings include x :: a1 (bound at PushedInAsGivens.hs:10:17) foo :: a1 -> Int (bound at PushedInAsGivens.hs:10:13) y :: a (bound at PushedInAsGivens.hs:9:5) bar :: a -> (a, Int) (bound at PushedInAsGivens.hs:9:1) - In the expression: y - In the first argument of ‘length’, namely ‘[x, y]’ PushedInAsGivens.hs:11:15: Couldn't match expected type ‘[a]’ with actual type ‘F Int’ - Relevant bindings include - y :: a (bound at PushedInAsGivens.hs:9:5) - bar :: a -> (a, Int) (bound at PushedInAsGivens.hs:9:1) In the expression: foo y In the expression: (y, foo y) In the expression: @@ -25,3 +22,6 @@ PushedInAsGivens.hs:11:15: foo :: (F Int ~ [a]) => a -> Int foo x = length [...] in (y, foo y) + Relevant bindings include + y :: a (bound at PushedInAsGivens.hs:9:5) + bar :: a -> (a, Int) (bound at PushedInAsGivens.hs:9:1) diff --git a/testsuite/tests/indexed-types/should_compile/T3208b.stderr b/testsuite/tests/indexed-types/should_compile/T3208b.stderr index 282aa2f886..10f3d2a26d 100644 --- a/testsuite/tests/indexed-types/should_compile/T3208b.stderr +++ b/testsuite/tests/indexed-types/should_compile/T3208b.stderr @@ -16,9 +16,9 @@ T3208b.hs:15:15: fce' :: (OTerm a ~ STerm a, OBJECT a, SUBST a) => a -> c at T3208b.hs:14:9-56 The type variable ‘o0’ is ambiguous - Relevant bindings include - f :: a (bound at T3208b.hs:15:6) - fce' :: a -> c (bound at T3208b.hs:15:1) In the first argument of ‘fce’, namely ‘(apply f)’ In the expression: fce (apply f) In an equation for ‘fce'’: fce' f = fce (apply f) + Relevant bindings include + f :: a (bound at T3208b.hs:15:6) + fce' :: a -> c (bound at T3208b.hs:15:1) diff --git a/testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.stderr b/testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.stderr index b551f39d4c..f8cd07d0f7 100644 --- a/testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.stderr +++ b/testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.stderr @@ -1,18 +1,18 @@ ExtraTcsUntch.hs:23:18: error: Couldn't match expected type ‘F Int’ with actual type ‘[[t]]’ - Relevant bindings include - x :: [t] (bound at ExtraTcsUntch.hs:21:3) - f :: [t] -> ((), ((), ())) (bound at ExtraTcsUntch.hs:21:1) In the first argument of ‘h’, namely ‘[x]’ In the expression: h [x] In an equation for ‘g1’: g1 _ = h [x] - -ExtraTcsUntch.hs:25:38: error: - Couldn't match expected type ‘F Int’ with actual type ‘[[t]]’ Relevant bindings include x :: [t] (bound at ExtraTcsUntch.hs:21:3) f :: [t] -> ((), ((), ())) (bound at ExtraTcsUntch.hs:21:1) + +ExtraTcsUntch.hs:25:38: error: + Couldn't match expected type ‘F Int’ with actual type ‘[[t]]’ In the first argument of ‘h’, namely ‘[[undefined]]’ In the expression: h [[undefined]] In the expression: (h [[undefined]], op x [y]) + Relevant bindings include + x :: [t] (bound at ExtraTcsUntch.hs:21:3) + f :: [t] -> ((), ((), ())) (bound at ExtraTcsUntch.hs:21:1) diff --git a/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr b/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr index 2f2d3bff65..694a7832ad 100644 --- a/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr +++ b/testsuite/tests/indexed-types/should_fail/GADTwrong1.stderr @@ -7,8 +7,8 @@ GADTwrong1.hs:12:21: at GADTwrong1.hs:12:14
‘b’ is a rigid type variable bound by
the type signature for: coerce :: a -> b at GADTwrong1.hs:10:20
+ In the expression: y
+ In a case alternative: T y -> y
Relevant bindings include
y :: c (bound at GADTwrong1.hs:12:16)
coerce :: a -> b (bound at GADTwrong1.hs:11:1)
- In the expression: y
- In a case alternative: T y -> y
diff --git a/testsuite/tests/indexed-types/should_fail/Overlap10.stderr b/testsuite/tests/indexed-types/should_fail/Overlap10.stderr index 5a53870eff..b6ad5772fe 100644 --- a/testsuite/tests/indexed-types/should_fail/Overlap10.stderr +++ b/testsuite/tests/indexed-types/should_fail/Overlap10.stderr @@ -1,8 +1,8 @@ Overlap10.hs:10:7: Couldn't match expected type ‘F a Bool’ with actual type ‘Bool’ + In the expression: False + In an equation for ‘g’: g x = False Relevant bindings include x :: a (bound at Overlap10.hs:10:3) g :: a -> F a Bool (bound at Overlap10.hs:10:1) - In the expression: False - In an equation for ‘g’: g x = False diff --git a/testsuite/tests/indexed-types/should_fail/Overlap11.stderr b/testsuite/tests/indexed-types/should_fail/Overlap11.stderr index 6e3286eb27..36af24fbd1 100644 --- a/testsuite/tests/indexed-types/should_fail/Overlap11.stderr +++ b/testsuite/tests/indexed-types/should_fail/Overlap11.stderr @@ -1,8 +1,8 @@ Overlap11.hs:10:8: Couldn't match expected type ‘F a Int’ with actual type ‘Int’ + In the expression: (5 :: Int) + In an equation for ‘g’: g x = (5 :: Int) Relevant bindings include x :: a (bound at Overlap11.hs:10:3) g :: a -> F a Int (bound at Overlap11.hs:10:1) - In the expression: (5 :: Int) - In an equation for ‘g’: g x = (5 :: Int) diff --git a/testsuite/tests/indexed-types/should_fail/Overlap15.stderr b/testsuite/tests/indexed-types/should_fail/Overlap15.stderr index a24504caa4..673a90798d 100644 --- a/testsuite/tests/indexed-types/should_fail/Overlap15.stderr +++ b/testsuite/tests/indexed-types/should_fail/Overlap15.stderr @@ -1,7 +1,7 @@ Overlap15.hs:16:9:
Couldn't match expected type ‘F b [b] Bool’ with actual type ‘Bool’
- Relevant bindings include
- foo :: Proxy b -> F b [b] Bool (bound at Overlap15.hs:16:1)
In the expression: False
In an equation for ‘foo’: foo _ = False
+ Relevant bindings include
+ foo :: Proxy b -> F b [b] Bool (bound at Overlap15.hs:16:1)
diff --git a/testsuite/tests/indexed-types/should_fail/Overlap6.stderr b/testsuite/tests/indexed-types/should_fail/Overlap6.stderr index 1b406e48f1..b2dc99251f 100644 --- a/testsuite/tests/indexed-types/should_fail/Overlap6.stderr +++ b/testsuite/tests/indexed-types/should_fail/Overlap6.stderr @@ -6,8 +6,8 @@ Overlap6.hs:15:7: at Overlap6.hs:14:6 Expected type: Proxy (And x 'True) Actual type: Proxy x + In the expression: x + In an equation for ‘g’: g x = x Relevant bindings include x :: Proxy x (bound at Overlap6.hs:15:3) g :: Proxy x -> Proxy (And x 'True) (bound at Overlap6.hs:15:1) - In the expression: x - In an equation for ‘g’: g x = x diff --git a/testsuite/tests/indexed-types/should_fail/Overlap9.stderr b/testsuite/tests/indexed-types/should_fail/Overlap9.stderr index 9dd542f4c8..11b73c52f9 100644 --- a/testsuite/tests/indexed-types/should_fail/Overlap9.stderr +++ b/testsuite/tests/indexed-types/should_fail/Overlap9.stderr @@ -1,8 +1,8 @@ Overlap9.hs:10:7: Couldn't match expected type ‘F a’ with actual type ‘Int’ + In the expression: length (show x) + In an equation for ‘g’: g x = length (show x) Relevant bindings include x :: a (bound at Overlap9.hs:10:3) g :: a -> F a (bound at Overlap9.hs:10:1) - In the expression: length (show x) - In an equation for ‘g’: g x = length (show x) diff --git a/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr b/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr index 0d663a6497..74db7b1dcf 100644 --- a/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr +++ b/testsuite/tests/indexed-types/should_fail/SimpleFail16.stderr @@ -2,8 +2,8 @@ SimpleFail16.hs:10:12: Couldn't match expected type ‘p0 a0’ with actual type ‘F ()’ The type variables ‘p0’, ‘a0’ are ambiguous - Relevant bindings include - bar :: p0 a0 (bound at SimpleFail16.hs:10:1) In the first argument of ‘foo’, namely ‘(undefined :: F ())’ In the expression: foo (undefined :: F ()) In an equation for ‘bar’: bar = foo (undefined :: F ()) + Relevant bindings include + bar :: p0 a0 (bound at SimpleFail16.hs:10:1) diff --git a/testsuite/tests/indexed-types/should_fail/SimpleFail5a.stderr b/testsuite/tests/indexed-types/should_fail/SimpleFail5a.stderr index 09df4c2510..8288d30619 100644 --- a/testsuite/tests/indexed-types/should_fail/SimpleFail5a.stderr +++ b/testsuite/tests/indexed-types/should_fail/SimpleFail5a.stderr @@ -6,7 +6,7 @@ SimpleFail5a.hs:31:11: at SimpleFail5a.hs:30:14 Expected type: S3 a Actual type: S3 Int - Relevant bindings include - bar3wrong :: S3 a -> a (bound at SimpleFail5a.hs:31:1) In the pattern: D3Int In an equation for ‘bar3wrong’: bar3wrong D3Int = 1 + Relevant bindings include + bar3wrong :: S3 a -> a (bound at SimpleFail5a.hs:31:1) diff --git a/testsuite/tests/indexed-types/should_fail/T2544.stderr b/testsuite/tests/indexed-types/should_fail/T2544.stderr index 0245cb7b6a..e60cdab2a5 100644 --- a/testsuite/tests/indexed-types/should_fail/T2544.stderr +++ b/testsuite/tests/indexed-types/should_fail/T2544.stderr @@ -5,10 +5,10 @@ T2544.hs:17:18: error: The type variable ‘i0’ is ambiguous Expected type: IxMap l [Int] Actual type: IxMap i0 [Int] - Relevant bindings include - empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) In the first argument of ‘BiApp’, namely ‘empty’ In the expression: BiApp empty empty + Relevant bindings include + empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) T2544.hs:17:24: error: Couldn't match type ‘IxMap i1’ with ‘IxMap r’ @@ -16,7 +16,7 @@ T2544.hs:17:24: error: The type variable ‘i1’ is ambiguous Expected type: IxMap r [Int] Actual type: IxMap i1 [Int] - Relevant bindings include - empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) In the second argument of ‘BiApp’, namely ‘empty’ In the expression: BiApp empty empty + Relevant bindings include + empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) diff --git a/testsuite/tests/indexed-types/should_fail/T2664.stderr b/testsuite/tests/indexed-types/should_fail/T2664.stderr index fb28764c80..d2dd0dff60 100644 --- a/testsuite/tests/indexed-types/should_fail/T2664.stderr +++ b/testsuite/tests/indexed-types/should_fail/T2664.stderr @@ -12,10 +12,10 @@ T2664.hs:31:52: the instance declaration at T2664.hs:22:10 Expected type: Dual (Dual a) Actual type: b - Relevant bindings include - v :: MVar (Either (PChan a) (PChan b)) (bound at T2664.hs:24:9) - newPChan :: IO (PChan (a :*: b), PChan c) (bound at T2664.hs:23:5) In the third argument of ‘pchoose’, namely ‘newPChan’ In the first argument of ‘E’, namely ‘(pchoose Right v newPChan)’ In the expression: E (pchoose Right v newPChan) (pchoose Left v newPChan) + Relevant bindings include + v :: MVar (Either (PChan a) (PChan b)) (bound at T2664.hs:24:9) + newPChan :: IO (PChan (a :*: b), PChan c) (bound at T2664.hs:23:5) diff --git a/testsuite/tests/indexed-types/should_fail/T2693.stderr b/testsuite/tests/indexed-types/should_fail/T2693.stderr index 0c6ea152a7..182bbde8ed 100644 --- a/testsuite/tests/indexed-types/should_fail/T2693.stderr +++ b/testsuite/tests/indexed-types/should_fail/T2693.stderr @@ -18,16 +18,16 @@ T2693.hs:11:7: T2693.hs:19:15:
Couldn't match expected type ‘(a5, b0)’ with actual type ‘TFn a2’
The type variables ‘b0’, ‘a2’, ‘a5’ are ambiguous
- Relevant bindings include n :: a5 (bound at T2693.hs:19:7)
In the first argument of ‘fst’, namely ‘x’
In the first argument of ‘(+)’, namely ‘fst x’
+ Relevant bindings include n :: a5 (bound at T2693.hs:19:7)
T2693.hs:19:23:
Couldn't match expected type ‘(a3, a5)’ with actual type ‘TFn a4’
The type variables ‘a3’, ‘a4’, ‘a5’ are ambiguous
- Relevant bindings include n :: a5 (bound at T2693.hs:19:7)
In the first argument of ‘snd’, namely ‘x’
In the second argument of ‘(+)’, namely ‘snd x’
+ Relevant bindings include n :: a5 (bound at T2693.hs:19:7)
T2693.hs:29:20:
Couldn't match type ‘TFn a0’ with ‘PVR a1’
diff --git a/testsuite/tests/indexed-types/should_fail/T3330a.stderr b/testsuite/tests/indexed-types/should_fail/T3330a.stderr index 9adb5ad462..a114158938 100644 --- a/testsuite/tests/indexed-types/should_fail/T3330a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T3330a.stderr @@ -7,12 +7,12 @@ T3330a.hs:19:34: Expected type: (s0 ix0 -> ix1) -> r ix1 -> Writer [AnyF s] (r'0 ix1) Actual type: s ix + In the first argument of ‘hmapM’, namely ‘p’ + In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ Relevant bindings include x :: PF s r ix (bound at T3330a.hs:19:12) p :: s ix (bound at T3330a.hs:19:10) children :: s ix -> PF s r ix -> [AnyF s] (bound at T3330a.hs:19:1) - In the first argument of ‘hmapM’, namely ‘p’ - In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ T3330a.hs:19:34: Couldn't match type ‘ix’ with ‘r ix1 -> Writer [AnyF s] (r'0 ix1)’ @@ -22,12 +22,12 @@ T3330a.hs:19:34: Expected type: (s0 ix0 -> ix1) -> r ix1 -> Writer [AnyF s] (r'0 ix1) Actual type: s ix + In the first argument of ‘hmapM’, namely ‘p’ + In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ Relevant bindings include x :: PF s r ix (bound at T3330a.hs:19:12) p :: s ix (bound at T3330a.hs:19:10) children :: s ix -> PF s r ix -> [AnyF s] (bound at T3330a.hs:19:1) - In the first argument of ‘hmapM’, namely ‘p’ - In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ T3330a.hs:19:44: Couldn't match type ‘ix’ with ‘r0 ix0 -> Writer [AnyF s0] (r0 ix0)’ @@ -36,9 +36,9 @@ T3330a.hs:19:44: at T3330a.hs:18:13 Expected type: PF s r (r0 ix0 -> Writer [AnyF s0] (r0 ix0)) Actual type: PF s r ix + In the third argument of ‘hmapM’, namely ‘x’ + In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ Relevant bindings include x :: PF s r ix (bound at T3330a.hs:19:12) p :: s ix (bound at T3330a.hs:19:10) children :: s ix -> PF s r ix -> [AnyF s] (bound at T3330a.hs:19:1) - In the third argument of ‘hmapM’, namely ‘x’ - In the first argument of ‘execWriter’, namely ‘(hmapM p collect x)’ diff --git a/testsuite/tests/indexed-types/should_fail/T3330c.stderr b/testsuite/tests/indexed-types/should_fail/T3330c.stderr index 61881d340f..d0a8320384 100644 --- a/testsuite/tests/indexed-types/should_fail/T3330c.stderr +++ b/testsuite/tests/indexed-types/should_fail/T3330c.stderr @@ -6,9 +6,9 @@ T3330c.hs:23:43: error: R :: (* -> *) -> * Expected type: Der ((->) x) (Der f1 x) Actual type: R f1 + In the first argument of ‘plug’, namely ‘rf’ + In the first argument of ‘Inl’, namely ‘(plug rf df x)’ Relevant bindings include x :: x (bound at T3330c.hs:23:29) df :: Der f1 x (bound at T3330c.hs:23:25) plug' :: R f -> Der f x -> x -> f x (bound at T3330c.hs:23:1) - In the first argument of ‘plug’, namely ‘rf’ - In the first argument of ‘Inl’, namely ‘(plug rf df x)’ diff --git a/testsuite/tests/indexed-types/should_fail/T3440.stderr b/testsuite/tests/indexed-types/should_fail/T3440.stderr index 5deb1e8de4..cfc5570c66 100644 --- a/testsuite/tests/indexed-types/should_fail/T3440.stderr +++ b/testsuite/tests/indexed-types/should_fail/T3440.stderr @@ -14,9 +14,9 @@ T3440.hs:11:22: ‘a’ is a rigid type variable bound by the type signature for: unwrap :: GADT (Fam a) -> (a, Fam a) at T3440.hs:10:11 + In the expression: x + In the expression: (x, y) Relevant bindings include y :: Fam a1 (bound at T3440.hs:11:16) x :: a1 (bound at T3440.hs:11:14) unwrap :: GADT (Fam a) -> (a, Fam a) (bound at T3440.hs:11:1) - In the expression: x - In the expression: (x, y) diff --git a/testsuite/tests/indexed-types/should_fail/T4093a.stderr b/testsuite/tests/indexed-types/should_fail/T4093a.stderr index b1810d3096..efeb34a94a 100644 --- a/testsuite/tests/indexed-types/should_fail/T4093a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4093a.stderr @@ -9,6 +9,6 @@ T4093a.hs:8:8: error: at T4093a.hs:7:9 Expected type: Foo e Actual type: Maybe () - Relevant bindings include hang :: Foo e (bound at T4093a.hs:8:1) In the expression: Just () In an equation for ‘hang’: hang = Just () + Relevant bindings include hang :: Foo e (bound at T4093a.hs:8:1) diff --git a/testsuite/tests/indexed-types/should_fail/T4093b.stderr b/testsuite/tests/indexed-types/should_fail/T4093b.stderr index 802757d514..53d7844f4f 100644 --- a/testsuite/tests/indexed-types/should_fail/T4093b.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4093b.stderr @@ -16,15 +16,6 @@ T4093b.hs:31:13: at T4093b.hs:20:12 Expected type: EitherCO e (A C O n) (A O O n) Actual type: (MaybeC C (n C O), MaybeC O (n O C)) - Relevant bindings include - f :: n C O - -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n) - (bound at T4093b.hs:31:5) - l :: n O C - -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C C n) (A O C n) - (bound at T4093b.hs:34:5) - b :: Block n e x (bound at T4093b.hs:25:17) - blockToNodeList :: Block n e x -> A e x n (bound at T4093b.hs:25:1) In the expression: (JustC n, NothingC) In an equation for ‘f’: f n _ = (JustC n, NothingC) In an equation for ‘blockToNodeList’: @@ -39,3 +30,12 @@ T4093b.hs:31:13: -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n) f n _ = (JustC n, NothingC) .... + Relevant bindings include + f :: n C O + -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n) + (bound at T4093b.hs:31:5) + l :: n O C + -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C C n) (A O C n) + (bound at T4093b.hs:34:5) + b :: Block n e x (bound at T4093b.hs:25:17) + blockToNodeList :: Block n e x -> A e x n (bound at T4093b.hs:25:1) diff --git a/testsuite/tests/indexed-types/should_fail/T4099.stderr b/testsuite/tests/indexed-types/should_fail/T4099.stderr index a16223254d..c5b4245c17 100644 --- a/testsuite/tests/indexed-types/should_fail/T4099.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4099.stderr @@ -3,19 +3,19 @@ T4099.hs:11:30: Couldn't match expected type ‘T a0’ with actual type ‘T b’ NB: ‘T’ is a type function, and may not be injective The type variable ‘a0’ is ambiguous + In the second argument of ‘foo’, namely ‘x’ + In the expression: foo (error "urk") x Relevant bindings include x :: T b (bound at T4099.hs:11:8) a :: b (bound at T4099.hs:11:6) bar1 :: b -> T b -> Int (bound at T4099.hs:11:1) - In the second argument of ‘foo’, namely ‘x’ - In the expression: foo (error "urk") x T4099.hs:14:30: Couldn't match expected type ‘T a1’ with actual type ‘Maybe b’ The type variable ‘a1’ is ambiguous + In the second argument of ‘foo’, namely ‘x’ + In the expression: foo (error "urk") x Relevant bindings include x :: Maybe b (bound at T4099.hs:14:8) a :: b (bound at T4099.hs:14:6) bar2 :: b -> Maybe b -> Int (bound at T4099.hs:14:1) - In the second argument of ‘foo’, namely ‘x’ - In the expression: foo (error "urk") x diff --git a/testsuite/tests/indexed-types/should_fail/T4174.stderr b/testsuite/tests/indexed-types/should_fail/T4174.stderr index cc4a7ae5c5..872004519e 100644 --- a/testsuite/tests/indexed-types/should_fail/T4174.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4174.stderr @@ -7,11 +7,11 @@ T4174.hs:42:12: at T4174.hs:41:13 Expected type: m (Field (Way (GHC6'8 minor) n t p) a b) Actual type: m (Field (WayOf m) SmStep RtsSpinLock) + In the expression: sync_large_objects + In an equation for ‘testcase’: testcase = sync_large_objects Relevant bindings include testcase :: m (Field (Way (GHC6'8 minor) n t p) a b) (bound at T4174.hs:42:1) - In the expression: sync_large_objects - In an equation for ‘testcase’: testcase = sync_large_objects T4174.hs:42:12: Couldn't match type ‘b’ with ‘RtsSpinLock’ @@ -21,8 +21,8 @@ T4174.hs:42:12: at T4174.hs:41:13 Expected type: m (Field (Way (GHC6'8 minor) n t p) a b) Actual type: m (Field (WayOf m) SmStep RtsSpinLock) + In the expression: sync_large_objects + In an equation for ‘testcase’: testcase = sync_large_objects Relevant bindings include testcase :: m (Field (Way (GHC6'8 minor) n t p) a b) (bound at T4174.hs:42:1) - In the expression: sync_large_objects - In an equation for ‘testcase’: testcase = sync_large_objects diff --git a/testsuite/tests/indexed-types/should_fail/T4179.stderr b/testsuite/tests/indexed-types/should_fail/T4179.stderr index 7069de90d8..f7f142a4bd 100644 --- a/testsuite/tests/indexed-types/should_fail/T4179.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4179.stderr @@ -8,8 +8,8 @@ T4179.hs:26:16: Actual type: x (A2 (FCon x) -> A3 (FCon x)) -> A2 (x (A2 (FCon x) -> A3 (FCon x))) -> A3 (x (A2 (FCon x) -> A3 (FCon x))) + In the first argument of ‘foldDoC’, namely ‘op’ + In the expression: foldDoC op Relevant bindings include fCon :: Con x -> A2 (FCon x) -> A3 (FCon x) (bound at T4179.hs:26:1) - In the first argument of ‘foldDoC’, namely ‘op’ - In the expression: foldDoC op diff --git a/testsuite/tests/indexed-types/should_fail/T4272.stderr b/testsuite/tests/indexed-types/should_fail/T4272.stderr index 74e36f7651..84d50dc69f 100644 --- a/testsuite/tests/indexed-types/should_fail/T4272.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4272.stderr @@ -6,11 +6,11 @@ T4272.hs:15:26: at T4272.hs:14:16 Expected type: TermFamily a (TermFamily a a) Actual type: TermFamily a a - Relevant bindings include - t :: TermFamily a a (bound at T4272.hs:15:6) - laws :: TermFamily a a -> b (bound at T4272.hs:15:1) In the first argument of ‘terms’, namely ‘(undefined :: TermFamily a a)’ In the second argument of ‘prune’, namely ‘(terms (undefined :: TermFamily a a))’ In the expression: prune t (terms (undefined :: TermFamily a a)) + Relevant bindings include + t :: TermFamily a a (bound at T4272.hs:15:6) + laws :: TermFamily a a -> b (bound at T4272.hs:15:1) diff --git a/testsuite/tests/indexed-types/should_fail/T5439.stderr b/testsuite/tests/indexed-types/should_fail/T5439.stderr index a68e8c2226..c5b9c9cfc9 100644 --- a/testsuite/tests/indexed-types/should_fail/T5439.stderr +++ b/testsuite/tests/indexed-types/should_fail/T5439.stderr @@ -4,6 +4,8 @@ T5439.hs:82:28: with ‘Attempt (HHead (HDrop n0 l0)) -> Attempt (HElemOf l0)’ Expected type: f (Attempt (HNth n0 l0) -> Attempt (HElemOf l0)) Actual type: f (Attempt (WaitOpResult (WaitOps rs))) + In the first argument of ‘complete’, namely ‘ev’ + In the expression: complete ev Relevant bindings include register :: Bool -> Peano n -> WaitOps (HDrop n rs) -> IO Bool (bound at T5439.hs:64:9) @@ -13,8 +15,6 @@ T5439.hs:82:28: registerWaitOp :: WaitOps rs -> f (Attempt (WaitOpResult (WaitOps rs))) -> IO Bool (bound at T5439.hs:61:3) - In the first argument of ‘complete’, namely ‘ev’ - In the expression: complete ev T5439.hs:82: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 8431c4d9fb..d97968b3aa 100644 --- a/testsuite/tests/indexed-types/should_fail/T6123.stderr +++ b/testsuite/tests/indexed-types/should_fail/T6123.stderr @@ -2,6 +2,6 @@ T6123.hs:10:14: error: Occurs check: cannot construct the infinite type: t0 ~ Id t0 The type variable ‘t0’ is ambiguous - Relevant bindings include cundefined :: t0 (bound at T6123.hs:10:1) In the expression: cid undefined In an equation for ‘cundefined’: cundefined = cid undefined + Relevant bindings include cundefined :: t0 (bound at T6123.hs:10:1) diff --git a/testsuite/tests/indexed-types/should_fail/T7194.stderr b/testsuite/tests/indexed-types/should_fail/T7194.stderr index 12df18bc81..b28868abdb 100644 --- a/testsuite/tests/indexed-types/should_fail/T7194.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7194.stderr @@ -5,9 +5,9 @@ T7194.hs:18:35: This (rigid, skolem) type variable is bound by the type signature for: g :: C (F a) => a -> Int at T7194.hs:17:23-41 + In the expression: foo y + In the first argument of ‘length’, namely ‘[x, foo y]’ Relevant bindings include y :: a (bound at T7194.hs:18:20) g :: a -> Int (bound at T7194.hs:18:18) x :: b0 (bound at T7194.hs:17:9) - In the expression: foo y - In the first argument of ‘length’, namely ‘[x, foo y]’ diff --git a/testsuite/tests/indexed-types/should_fail/T7354.stderr b/testsuite/tests/indexed-types/should_fail/T7354.stderr index 7c505f1876..f115604b10 100644 --- a/testsuite/tests/indexed-types/should_fail/T7354.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7354.stderr @@ -4,7 +4,7 @@ T7354.hs:28:11: a ~ Base t (Prim [a] a) Expected type: Prim [a] a -> Base t (Prim [a] a) Actual type: Prim [a] a -> a - Relevant bindings include - foo :: Prim [a] a -> t (bound at T7354.hs:28:1) In the first argument of ‘ana’, namely ‘alg’ In the expression: ana alg + Relevant bindings include + foo :: Prim [a] a -> t (bound at T7354.hs:28:1) diff --git a/testsuite/tests/indexed-types/should_fail/T7354a.stderr b/testsuite/tests/indexed-types/should_fail/T7354a.stderr index ac7bc80cc8..ed38da6ed2 100644 --- a/testsuite/tests/indexed-types/should_fail/T7354a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7354a.stderr @@ -1,6 +1,6 @@ T7354a.hs:5:13: Couldn't match expected type ‘Base t t’ with actual type ‘()’ - Relevant bindings include foo :: t (bound at T7354a.hs:5:1) In the first argument of ‘embed’, namely ‘()’ In the expression: embed () + Relevant bindings include foo :: t (bound at T7354a.hs:5:1) diff --git a/testsuite/tests/indexed-types/should_fail/T7729.stderr b/testsuite/tests/indexed-types/should_fail/T7729.stderr index 7be5d5764c..6686f39ca0 100644 --- a/testsuite/tests/indexed-types/should_fail/T7729.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7729.stderr @@ -4,8 +4,8 @@ T7729.hs:36:14: error: The type variable ‘t0’ is ambiguous Expected type: t0 (BasePrimMonad m) a -> Rand m a Actual type: BasePrimMonad (Rand m) a -> Rand m a + In the first argument of ‘(.)’, namely ‘liftPrim’ + In the expression: liftPrim . lift Relevant bindings include liftPrim :: BasePrimMonad (Rand m) a -> Rand m a (bound at T7729.hs:36:3) - In the first argument of ‘(.)’, namely ‘liftPrim’ - In the expression: liftPrim . lift diff --git a/testsuite/tests/indexed-types/should_fail/T7729a.stderr b/testsuite/tests/indexed-types/should_fail/T7729a.stderr index 8bd5a24d68..ca5f29f2c7 100644 --- a/testsuite/tests/indexed-types/should_fail/T7729a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7729a.stderr @@ -4,9 +4,9 @@ T7729a.hs:36:26: The type variable ‘t0’ is ambiguous Expected type: BasePrimMonad (Rand m) a Actual type: t0 (BasePrimMonad m) a + In the first argument of ‘liftPrim’, namely ‘(lift x)’ + In the expression: liftPrim (lift x) Relevant bindings include x :: BasePrimMonad (Rand m) a (bound at T7729a.hs:36:12) liftPrim :: BasePrimMonad (Rand m) a -> Rand m a (bound at T7729a.hs:36:3) - In the first argument of ‘liftPrim’, namely ‘(lift x)’ - In the expression: liftPrim (lift x) diff --git a/testsuite/tests/indexed-types/should_fail/T7786.stderr b/testsuite/tests/indexed-types/should_fail/T7786.stderr index 686ccd77bc..62627d6377 100644 --- a/testsuite/tests/indexed-types/should_fail/T7786.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7786.stderr @@ -16,15 +16,6 @@ T7786.hs:86:49: error: with ‘Intersect (BuriedUnder sub k 'Empty) inv’
Expected type: Sing xxx
Actual type: Sing (Intersect (BuriedUnder sub k 'Empty) inv)
- Relevant bindings include
- sub :: Database sub (bound at T7786.hs:86:13)
- k :: Sing k (bound at T7786.hs:86:11)
- db :: Database inv (bound at T7786.hs:86:8)
- addSub :: Database inv
- -> Sing k
- -> Database sub
- -> Maybe (Database (BuriedUnder sub k inv))
- (bound at T7786.hs:86:1)
In the first argument of ‘return’, namely
‘(buryUnder (dbKeys sub) k Nil `intersectPaths` dbKeys db)’
In a stmt of a 'do' block:
@@ -34,3 +25,12 @@ T7786.hs:86:49: error: do { Nil :: Sing xxx <- return
(buryUnder (dbKeys sub) k Nil `intersectPaths` dbKeys db);
return $ Sub db k sub }
+ Relevant bindings include
+ sub :: Database sub (bound at T7786.hs:86:13)
+ k :: Sing k (bound at T7786.hs:86:11)
+ db :: Database inv (bound at T7786.hs:86:8)
+ addSub :: Database inv
+ -> Sing k
+ -> Database sub
+ -> Maybe (Database (BuriedUnder sub k inv))
+ (bound at T7786.hs:86:1)
diff --git a/testsuite/tests/indexed-types/should_fail/T8129.stdout b/testsuite/tests/indexed-types/should_fail/T8129.stdout index 975ee8a721..bffa3dae0b 100644 --- a/testsuite/tests/indexed-types/should_fail/T8129.stdout +++ b/testsuite/tests/indexed-types/should_fail/T8129.stdout @@ -1 +1 @@ - Could not deduce (C x0 (F x0)) + • Could not deduce (C x0 (F x0)) diff --git a/testsuite/tests/indexed-types/should_fail/T8227.stderr b/testsuite/tests/indexed-types/should_fail/T8227.stderr index f09d468a75..d52f4b447d 100644 --- a/testsuite/tests/indexed-types/should_fail/T8227.stderr +++ b/testsuite/tests/indexed-types/should_fail/T8227.stderr @@ -3,23 +3,23 @@ T8227.hs:16:27: Couldn't match expected type ‘Scalar (V a)’ with actual type ‘Scalar (V (Scalar (V a))) -> Scalar (V (Scalar (V a)))’ + In the expression: arcLengthToParam eps eps + In an equation for ‘absoluteToParam’: + absoluteToParam eps seg = arcLengthToParam eps eps Relevant bindings include seg :: a (bound at T8227.hs:16:21) eps :: Scalar (V a) (bound at T8227.hs:16:17) absoluteToParam :: Scalar (V a) -> a -> Scalar (V a) (bound at T8227.hs:16:1) - In the expression: arcLengthToParam eps eps - In an equation for ‘absoluteToParam’: - absoluteToParam eps seg = arcLengthToParam eps eps T8227.hs:16:44: Couldn't match expected type ‘Scalar (V (Scalar (V a)))’ with actual type ‘Scalar (V a)’ NB: ‘Scalar’ is a type function, and may not be injective + In the first argument of ‘arcLengthToParam’, namely ‘eps’ + In the expression: arcLengthToParam eps eps Relevant bindings include seg :: a (bound at T8227.hs:16:21) eps :: Scalar (V a) (bound at T8227.hs:16:17) absoluteToParam :: Scalar (V a) -> a -> Scalar (V a) (bound at T8227.hs:16:1) - In the first argument of ‘arcLengthToParam’, namely ‘eps’ - In the expression: arcLengthToParam eps eps diff --git a/testsuite/tests/indexed-types/should_fail/T8518.stderr b/testsuite/tests/indexed-types/should_fail/T8518.stderr index 313bdcfeaa..8a267d7bd0 100644 --- a/testsuite/tests/indexed-types/should_fail/T8518.stderr +++ b/testsuite/tests/indexed-types/should_fail/T8518.stderr @@ -1,11 +1,6 @@ T8518.hs:14:18: Couldn't match expected type ‘Maybe (F c)’ with actual type ‘F c’ - Relevant bindings include - b :: B c (bound at T8518.hs:14:14) - z :: Z c (bound at T8518.hs:14:12) - c :: c (bound at T8518.hs:14:10) - callCont :: c -> Z c -> B c -> Maybe (F c) (bound at T8518.hs:14:1) In the expression: rpt (4 :: Int) c z b In an equation for ‘callCont’: callCont c z b @@ -13,16 +8,21 @@ T8518.hs:14:18: where rpt 0 c' z' b' = fromJust (fst <$> (continue c' z' b')) rpt i c' z' b' = let ... in rpt (i - 1) c'' + Relevant bindings include + b :: B c (bound at T8518.hs:14:14) + z :: Z c (bound at T8518.hs:14:12) + c :: c (bound at T8518.hs:14:10) + callCont :: c -> Z c -> B c -> Maybe (F c) (bound at T8518.hs:14:1) T8518.hs:17:78: Couldn't match expected type ‘F a1’ with actual type ‘Z a1 -> B a1 -> F a1’ + In the expression: rpt (i - 1) c'' + In the expression: + let c'' = fromJust (snd <$> (continue c' z' b')) in rpt (i - 1) c'' Relevant bindings include c'' :: a1 (bound at T8518.hs:17:30) b' :: B a1 (bound at T8518.hs:17:21) z' :: Z a1 (bound at T8518.hs:17:18) c' :: a1 (bound at T8518.hs:17:15) rpt :: a -> a1 -> Z a1 -> B a1 -> F a1 (bound at T8518.hs:16:9) - In the expression: rpt (i - 1) c'' - In the expression: - let c'' = fromJust (snd <$> (continue c' z' b')) in rpt (i - 1) c'' diff --git a/testsuite/tests/indexed-types/should_fail/T9662.stderr b/testsuite/tests/indexed-types/should_fail/T9662.stderr index 596c16c724..3c800183a1 100644 --- a/testsuite/tests/indexed-types/should_fail/T9662.stderr +++ b/testsuite/tests/indexed-types/should_fail/T9662.stderr @@ -15,10 +15,6 @@ T9662.hs:49:7: error: -> Exp (((sh :. k) :. m) :. n) Actual type: Exp (((sh :. k) :. m) :. n) -> Exp (((sh :. k) :. m) :. n) - Relevant bindings include - test :: Shape (((sh :. k) :. m) :. n) - -> Shape (((sh :. m) :. n) :. k) - (bound at T9662.hs:45:1) In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute @@ -26,6 +22,10 @@ T9662.hs:49:7: error: (atom :. atom :. atom :. atom) (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k))) id + Relevant bindings include + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + (bound at T9662.hs:45:1) T9662.hs:49:7: error: Couldn't match type ‘m’ with ‘k’ @@ -43,10 +43,6 @@ T9662.hs:49:7: error: -> Exp (((sh :. k) :. m) :. n) Actual type: Exp (((sh :. k) :. m) :. n) -> Exp (((sh :. k) :. m) :. n) - Relevant bindings include - test :: Shape (((sh :. k) :. m) :. n) - -> Shape (((sh :. m) :. n) :. k) - (bound at T9662.hs:45:1) In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute @@ -54,6 +50,10 @@ T9662.hs:49:7: error: (atom :. atom :. atom :. atom) (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k))) id + Relevant bindings include + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + (bound at T9662.hs:45:1) T9662.hs:49:7: error: Couldn't match type ‘n’ with ‘m’ @@ -71,10 +71,6 @@ T9662.hs:49:7: error: -> Exp (((sh :. k) :. m) :. n) Actual type: Exp (((sh :. k) :. m) :. n) -> Exp (((sh :. k) :. m) :. n) - Relevant bindings include - test :: Shape (((sh :. k) :. m) :. n) - -> Shape (((sh :. m) :. n) :. k) - (bound at T9662.hs:45:1) In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute @@ -82,3 +78,7 @@ T9662.hs:49:7: error: (atom :. atom :. atom :. atom) (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k))) id + Relevant bindings include + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + (bound at T9662.hs:45:1) diff --git a/testsuite/tests/module/mod71.stderr b/testsuite/tests/module/mod71.stderr index 84a5c865b6..a85f7cf182 100644 --- a/testsuite/tests/module/mod71.stderr +++ b/testsuite/tests/module/mod71.stderr @@ -4,9 +4,9 @@ mod71.hs:4:9: error: Where: ‘t1’ is a rigid type variable bound by
the inferred type of f :: Num a => (t1 -> a -> t) -> t
at mod71.hs:4:1
- Relevant bindings include
- x :: t1 -> a -> t (bound at mod71.hs:4:3)
- f :: (t1 -> a -> t) -> t (bound at mod71.hs:4:1)
In the first argument of ‘x’, namely ‘_’
In the expression: x _ 1
In an equation for ‘f’: f x = x _ 1
+ Relevant bindings include
+ x :: t1 -> a -> t (bound at mod71.hs:4:3)
+ f :: (t1 -> a -> t) -> t (bound at mod71.hs:4:1)
diff --git a/testsuite/tests/parser/should_fail/T7848.stderr b/testsuite/tests/parser/should_fail/T7848.stderr index 311146dc16..902f303649 100644 --- a/testsuite/tests/parser/should_fail/T7848.stderr +++ b/testsuite/tests/parser/should_fail/T7848.stderr @@ -2,14 +2,6 @@ T7848.hs:6:57: error: Occurs check: cannot construct the infinite type: t2 ~ t0 -> t -> t1 -> A -> A -> A -> A -> t2 - Relevant bindings include - y :: forall t4. t4 -> t -> t1 -> A -> A -> A -> A -> t2 - (bound at T7848.hs:8:9) - (&) :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:11:9) - z :: t1 (bound at T7848.hs:6:12) - (&) :: t1 (bound at T7848.hs:6:8) - (+) :: t (bound at T7848.hs:6:3) - x :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:6:1) In the expression: y In an equation for ‘x’: x (+) ((&)@z) ((:&&) a b) (c :&& d) (e `A` f) (A g h) @@ -20,17 +12,20 @@ T7848.hs:6:57: error: {-# INLINE (&) #-} {-# SPECIALIZE (&) :: a #-} (&) = x + Relevant bindings include + y :: forall t4. t4 -> t -> t1 -> A -> A -> A -> A -> t2 + (bound at T7848.hs:8:9) + (&) :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:11:9) + z :: t1 (bound at T7848.hs:6:12) + (&) :: t1 (bound at T7848.hs:6:8) + (+) :: t (bound at T7848.hs:6:3) + x :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:6:1) T7848.hs:10:9: error: Couldn't match expected type ‘t -> t1 -> A -> A -> A -> A -> t2’ with actual type ‘a’ ‘a’ is a rigid type variable bound by the type signature for: (&) :: a at T7848.hs:10:9 - Relevant bindings include - z :: t1 (bound at T7848.hs:6:12) - (&) :: t1 (bound at T7848.hs:6:8) - (+) :: t (bound at T7848.hs:6:3) - x :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:6:1) In the SPECIALISE pragma {-# SPECIALIZE (&) :: a #-} In an equation for ‘x’: x (+) ((&)@z) ((:&&) a b) (c :&& d) (e `A` f) (A g h) @@ -41,3 +36,8 @@ T7848.hs:10:9: error: {-# INLINE (&) #-} {-# SPECIALIZE (&) :: a #-} (&) = x + Relevant bindings include + z :: t1 (bound at T7848.hs:6:12) + (&) :: t1 (bound at T7848.hs:6:8) + (+) :: t (bound at T7848.hs:6:3) + x :: t -> t1 -> A -> A -> A -> A -> t2 (bound at T7848.hs:6:1) diff --git a/testsuite/tests/parser/should_fail/readFail003.stderr b/testsuite/tests/parser/should_fail/readFail003.stderr index e90fbb455d..acb265b9b4 100644 --- a/testsuite/tests/parser/should_fail/readFail003.stderr +++ b/testsuite/tests/parser/should_fail/readFail003.stderr @@ -2,10 +2,6 @@ readFail003.hs:4:27: Occurs check: cannot construct the infinite type: t ~ (t, [a], [a1]) - Relevant bindings include - a :: t (bound at readFail003.hs:4:3) - b :: [a] (bound at readFail003.hs:4:5) - c :: [a1] (bound at readFail003.hs:4:7) In the expression: a In a pattern binding: ~(a, b, c) @@ -14,3 +10,7 @@ readFail003.hs:4:27: | otherwise = a where nullity = null + Relevant bindings include + a :: t (bound at readFail003.hs:4:3) + b :: [a] (bound at readFail003.hs:4:5) + c :: [a1] (bound at readFail003.hs:4:7) diff --git a/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr b/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr index de30497289..1df0b889fd 100644 --- a/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr @@ -8,20 +8,20 @@ SplicesUsed.hs:7:16: warning: SplicesUsed.hs:8:15: warning:
Found type wildcard ‘_a’ standing for ‘Maybe Bool’
- Relevant bindings include
- maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
In an expression type signature: _a -> _a
In the expression: id :: _a -> _a
In the expression: (id :: _a -> _a) (Just True :: Maybe _)
+ Relevant bindings include
+ maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
SplicesUsed.hs:8:27: warning:
Found type wildcard ‘_’ standing for ‘Bool’
- Relevant bindings include
- maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
In an expression type signature: Maybe _
In the first argument of ‘id :: _a -> _a’, namely
‘(Just True :: Maybe _)’
In the expression: (id :: _a -> _a) (Just True :: Maybe _)
+ Relevant bindings include
+ maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
SplicesUsed.hs:10:17: warning:
Found type wildcard ‘_’ standing for ‘(Char, a)’
diff --git a/testsuite/tests/partial-sigs/should_compile/T10438.stderr b/testsuite/tests/partial-sigs/should_compile/T10438.stderr index 7c2a0907e8..2ae08675f2 100644 --- a/testsuite/tests/partial-sigs/should_compile/T10438.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T10438.stderr @@ -3,11 +3,6 @@ T10438.hs:7:22: warning: Found type wildcard ‘_’ standing for ‘t2’
Where: ‘t2’ is a rigid type variable bound by
the inferred type of g :: t2 -> t2 at T10438.hs:6:9
- Relevant bindings include
- r :: t2 (bound at T10438.hs:6:11)
- g :: t2 -> t2 (bound at T10438.hs:6:9)
- f :: t (bound at T10438.hs:5:5)
- foo :: t -> t1 -> t1 (bound at T10438.hs:5:1)
In the type signature for:
x :: _
In an equation for ‘g’:
@@ -25,3 +20,8 @@ T10438.hs:7:22: warning: where
x :: _
x = r
+ Relevant bindings include
+ r :: t2 (bound at T10438.hs:6:11)
+ g :: t2 -> t2 (bound at T10438.hs:6:9)
+ f :: t (bound at T10438.hs:5:5)
+ foo :: t -> t1 -> t1 (bound at T10438.hs:5:1)
diff --git a/testsuite/tests/partial-sigs/should_compile/T10463.stderr b/testsuite/tests/partial-sigs/should_compile/T10463.stderr index 01fc4b3214..9a3215e9fb 100644 --- a/testsuite/tests/partial-sigs/should_compile/T10463.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T10463.stderr @@ -1,8 +1,8 @@ T10463.hs:5:9: warning: Found type wildcard ‘_’ standing for ‘[Char]’ - Relevant bindings include - f :: [Char] -> [Char] (bound at T10463.hs:5:1) In a pattern type signature: _ In the pattern: x :: _ In an equation for ‘f’: f (x :: _) = x ++ "" + Relevant bindings include + f :: [Char] -> [Char] (bound at T10463.hs:5:1) diff --git a/testsuite/tests/partial-sigs/should_compile/TypedSplice.stderr b/testsuite/tests/partial-sigs/should_compile/TypedSplice.stderr index 3cfa776ef1..2f92c657f3 100644 --- a/testsuite/tests/partial-sigs/should_compile/TypedSplice.stderr +++ b/testsuite/tests/partial-sigs/should_compile/TypedSplice.stderr @@ -1,16 +1,16 @@ TypedSplice.hs:9:22: warning: Found type wildcard ‘_’ standing for ‘Bool’ - Relevant bindings include - metaExp :: Q (TExp (Bool -> Bool)) (bound at TypedSplice.hs:9:1) In an expression type signature: _ -> _b In the Template Haskell quotation [|| not :: _ -> _b ||] In the expression: [|| not :: _ -> _b ||] + Relevant bindings include + metaExp :: Q (TExp (Bool -> Bool)) (bound at TypedSplice.hs:9:1) TypedSplice.hs:9:27: warning: Found type wildcard ‘_b’ standing for ‘Bool’ - Relevant bindings include - metaExp :: Q (TExp (Bool -> Bool)) (bound at TypedSplice.hs:9:1) In an expression type signature: _ -> _b In the Template Haskell quotation [|| not :: _ -> _b ||] In the expression: [|| not :: _ -> _b ||] + Relevant bindings include + metaExp :: Q (TExp (Bool -> Bool)) (bound at TypedSplice.hs:9:1) diff --git a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotEnabled.stderr b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotEnabled.stderr index a8c4bc596c..7029b0495c 100644 --- a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotEnabled.stderr +++ b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotEnabled.stderr @@ -4,18 +4,18 @@ NamedWildcardsNotEnabled.hs:4:9: ‘_b’ is a rigid type variable bound by
the type signature for: foo :: _a -> _b
at NamedWildcardsNotEnabled.hs:3:8
- Relevant bindings include
- foo :: _a -> _b (bound at NamedWildcardsNotEnabled.hs:4:1)
In the expression: not x
In an equation for ‘foo’: foo x = not x
+ Relevant bindings include
+ foo :: _a -> _b (bound at NamedWildcardsNotEnabled.hs:4:1)
NamedWildcardsNotEnabled.hs:4:13:
Couldn't match expected type ‘Bool’ with actual type ‘_a’
‘_a’ is a rigid type variable bound by
the type signature for: foo :: _a -> _b
at NamedWildcardsNotEnabled.hs:3:8
+ In the first argument of ‘not’, namely ‘x’
+ In the expression: not x
Relevant bindings include
x :: _a (bound at NamedWildcardsNotEnabled.hs:4:5)
foo :: _a -> _b (bound at NamedWildcardsNotEnabled.hs:4:1)
- In the first argument of ‘not’, namely ‘x’
- In the expression: not x
diff --git a/testsuite/tests/partial-sigs/should_fail/T10045.stderr b/testsuite/tests/partial-sigs/should_fail/T10045.stderr index c57170ebc2..959bc0f52c 100644 --- a/testsuite/tests/partial-sigs/should_fail/T10045.stderr +++ b/testsuite/tests/partial-sigs/should_fail/T10045.stderr @@ -6,9 +6,6 @@ T10045.hs:6:18: error: ‘t2’ is a rigid type variable bound by the inferred type of copy :: t1 -> Bool -> t2 at T10045.hs:7:10 To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - ws1 :: () (bound at T10045.hs:5:11) - foo :: Meta -> t (bound at T10045.hs:5:1) In the type signature for: copy :: _ In the expression: @@ -22,3 +19,6 @@ T10045.hs:6:18: error: copy :: _ copy w from = copy w True in copy ws1 False + Relevant bindings include + ws1 :: () (bound at T10045.hs:5:11) + foo :: Meta -> t (bound at T10045.hs:5:1) diff --git a/testsuite/tests/partial-sigs/should_fail/T10615.stderr b/testsuite/tests/partial-sigs/should_fail/T10615.stderr index 22ce84af63..3c2c2e9dab 100644 --- a/testsuite/tests/partial-sigs/should_fail/T10615.stderr +++ b/testsuite/tests/partial-sigs/should_fail/T10615.stderr @@ -12,9 +12,9 @@ T10615.hs:5:6: error: the inferred type of f1 :: a1 -> f at T10615.hs:4:7
Expected type: a1 -> f
Actual type: a1 -> b1 -> a1
- Relevant bindings include f1 :: a1 -> f (bound at T10615.hs:5:1)
In the expression: const
In an equation for ‘f1’: f1 = const
+ Relevant bindings include f1 :: a1 -> f (bound at T10615.hs:5:1)
T10615.hs:7:7: error:
Found type wildcard ‘_’ standing for ‘a0’
@@ -29,6 +29,6 @@ T10615.hs:8:6: error: the inferred type of f2 :: a0 -> _f at T10615.hs:7:7
Expected type: a0 -> _f
Actual type: a0 -> b0 -> a0
- Relevant bindings include f2 :: a0 -> _f (bound at T10615.hs:8:1)
In the expression: const
In an equation for ‘f2’: f2 = const
+ Relevant bindings include f2 :: a0 -> _f (bound at T10615.hs:8:1)
diff --git a/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr b/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr index 7eb8b3eebd..045423ca0c 100644 --- a/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr +++ b/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr @@ -1,46 +1,46 @@ - -Trac10045.hs:6:17: error: - Found type wildcard ‘_’ standing for ‘t1 -> a -> t2’ - Where: ‘t1’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - ‘a’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - ‘t2’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - ws1 :: () (bound at Trac10045.hs:5:11) - foo :: Meta -> t (bound at Trac10045.hs:5:1) - In the type signature for: - copy :: _ - In the expression: - let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - In an equation for ‘foo’: - foo (Meta ws1) - = let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - -Trac10045.hs:7:9: error: - No instance for (Num a) - When checking that ‘copy’ has the inferred type - copy :: forall t t1 a. t -> a -> t1 - Probable cause: the inferred type is ambiguous - In the expression: - let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - In an equation for ‘foo’: - foo (Meta ws1) - = let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 +
+Trac10045.hs:6:17: error:
+ Found type wildcard ‘_’ standing for ‘t1 -> a -> t2’
+ Where: ‘t1’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ ‘a’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ ‘t2’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ copy :: _
+ In the expression:
+ let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+ In an equation for ‘foo’:
+ foo (Meta ws1)
+ = let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+ Relevant bindings include
+ ws1 :: () (bound at Trac10045.hs:5:11)
+ foo :: Meta -> t (bound at Trac10045.hs:5:1)
+
+Trac10045.hs:7:9: error:
+ No instance for (Num a)
+ When checking that ‘copy’ has the inferred type
+ copy :: forall t t1 a. t -> a -> t1
+ Probable cause: the inferred type is ambiguous
+ In the expression:
+ let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+ In an equation for ‘foo’:
+ foo (Meta ws1)
+ = let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
diff --git a/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr b/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr index 97dacfe20a..6e87e4ff9c 100644 --- a/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr +++ b/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr @@ -5,12 +5,12 @@ WildcardsInPatternAndExprSig.hs:4:18: error: the inferred type of bar :: Maybe [t] -> t -> [t]
at WildcardsInPatternAndExprSig.hs:4:1
To use the inferred type, enable PartialTypeSignatures
- Relevant bindings include
- bar :: Maybe [t] -> t -> [t]
- (bound at WildcardsInPatternAndExprSig.hs:4:1)
In a pattern type signature: _a
In the pattern: x :: _a
In the pattern: [x :: _a]
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
WildcardsInPatternAndExprSig.hs:4:25: error:
Found type wildcard ‘_’ standing for ‘[t]’
@@ -18,12 +18,12 @@ WildcardsInPatternAndExprSig.hs:4:25: error: the inferred type of bar :: Maybe [t] -> t -> [t]
at WildcardsInPatternAndExprSig.hs:4:1
To use the inferred type, enable PartialTypeSignatures
- Relevant bindings include
- bar :: Maybe [t] -> t -> [t]
- (bound at WildcardsInPatternAndExprSig.hs:4:1)
In a pattern type signature: _
In the pattern: [x :: _a] :: _
In the pattern: Just ([x :: _a] :: _)
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
WildcardsInPatternAndExprSig.hs:4:38: error:
Found type wildcard ‘_b’ standing for ‘t’
@@ -31,14 +31,14 @@ WildcardsInPatternAndExprSig.hs:4:38: error: the inferred type of bar :: Maybe [t] -> t -> [t]
at WildcardsInPatternAndExprSig.hs:4:1
To use the inferred type, enable PartialTypeSignatures
- Relevant bindings include
- bar :: Maybe [t] -> t -> [t]
- (bound at WildcardsInPatternAndExprSig.hs:4:1)
In a pattern type signature: Maybe [_b]
In the pattern: Just ([x :: _a] :: _) :: Maybe [_b]
In an equation for ‘bar’:
bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
= [x, z] :: [_d]
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
WildcardsInPatternAndExprSig.hs:4:49: error:
Found type wildcard ‘_c’ standing for ‘t’
@@ -46,15 +46,15 @@ WildcardsInPatternAndExprSig.hs:4:49: error: the inferred type of bar :: Maybe [t] -> t -> [t]
at WildcardsInPatternAndExprSig.hs:4:1
To use the inferred type, enable PartialTypeSignatures
- Relevant bindings include
- x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
- bar :: Maybe [t] -> t -> [t]
- (bound at WildcardsInPatternAndExprSig.hs:4:1)
In a pattern type signature: _c
In the pattern: z :: _c
In an equation for ‘bar’:
bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
= [x, z] :: [_d]
+ Relevant bindings include
+ x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
WildcardsInPatternAndExprSig.hs:4:66: error:
Found type wildcard ‘_d’ standing for ‘t’
@@ -62,13 +62,13 @@ WildcardsInPatternAndExprSig.hs:4:66: error: the inferred type of bar :: Maybe [t] -> t -> [t]
at WildcardsInPatternAndExprSig.hs:4:1
To use the inferred type, enable PartialTypeSignatures
- Relevant bindings include
- z :: t (bound at WildcardsInPatternAndExprSig.hs:4:44)
- x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
- bar :: Maybe [t] -> t -> [t]
- (bound at WildcardsInPatternAndExprSig.hs:4:1)
In an expression type signature: [_d]
In the expression: [x, z] :: [_d]
In an equation for ‘bar’:
bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
= [x, z] :: [_d]
+ Relevant bindings include
+ z :: t (bound at WildcardsInPatternAndExprSig.hs:4:44)
+ x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
diff --git a/testsuite/tests/polykinds/T7230.stderr b/testsuite/tests/polykinds/T7230.stderr index ed7140f53b..0756cd5284 100644 --- a/testsuite/tests/polykinds/T7230.stderr +++ b/testsuite/tests/polykinds/T7230.stderr @@ -20,9 +20,9 @@ T7230.hs:48:32: at T7230.hs:48:17-26 Expected type: SBool (Increasing xs) Actual type: SBool (x :<<= x1) - Relevant bindings include - y :: Sing x1 (bound at T7230.hs:48:23) - x :: Sing x (bound at T7230.hs:48:14) In the expression: x %:<<= y In an equation for ‘crash’: crash (SCons x (SCons y xs)) = x %:<<= y + Relevant bindings include + y :: Sing x1 (bound at T7230.hs:48:23) + x :: Sing x (bound at T7230.hs:48:14) diff --git a/testsuite/tests/polykinds/T7438.stderr b/testsuite/tests/polykinds/T7438.stderr index d45bec1851..d87e437b31 100644 --- a/testsuite/tests/polykinds/T7438.stderr +++ b/testsuite/tests/polykinds/T7438.stderr @@ -12,8 +12,8 @@ T7438.hs:6:14: error: ‘t1’ is a rigid type variable bound by the inferred type of go :: Thrist t2 t3 -> t -> t1 at T7438.hs:6:1 Possible fix: add a type signature for ‘go’ + In the expression: acc + In an equation for ‘go’: go Nil acc = acc Relevant bindings include acc :: t (bound at T7438.hs:6:8) go :: Thrist t2 t3 -> t -> t1 (bound at T7438.hs:6:1) - In the expression: acc - In an equation for ‘go’: go Nil acc = acc diff --git a/testsuite/tests/polykinds/T7594.stderr b/testsuite/tests/polykinds/T7594.stderr index 08ab1632e6..3ee902ad78 100644 --- a/testsuite/tests/polykinds/T7594.stderr +++ b/testsuite/tests/polykinds/T7594.stderr @@ -10,6 +10,6 @@ T7594.hs:33:12: Possible fix: add a type signature for ‘bar2’ Expected type: a -> b Actual type: a -> IO () - Relevant bindings include bar2 :: b (bound at T7594.hs:33:1) In the first argument of ‘app’, namely ‘print’ In the expression: app print q2 + Relevant bindings include bar2 :: b (bound at T7594.hs:33:1) diff --git a/testsuite/tests/simplCore/should_compile/simpl017.stderr b/testsuite/tests/simplCore/should_compile/simpl017.stderr index 5d4dc582e6..2d3c16ef71 100644 --- a/testsuite/tests/simplCore/should_compile/simpl017.stderr +++ b/testsuite/tests/simplCore/should_compile/simpl017.stderr @@ -2,37 +2,37 @@ simpl017.hs:55:12: Couldn't match expected type ‘forall v. [E m i] -> E' v m a’ with actual type ‘[E m i] -> E' v0 m a’ + In the first argument of ‘return’, namely ‘f’ + In a stmt of a 'do' block: return f Relevant bindings include f :: [E m i] -> E' v0 m a (bound at simpl017.hs:54:9) ix :: [E m i] -> m i (bound at simpl017.hs:52:9) a :: arr i a (bound at simpl017.hs:50:11) liftArray :: arr i a -> E m (forall v. [E m i] -> E' v m a) (bound at simpl017.hs:50:1) - In the first argument of ‘return’, namely ‘f’ - In a stmt of a 'do' block: return f simpl017.hs:74:5: Couldn't match expected type ‘[E (ST t0) Int] -> E (ST s) Int’ with actual type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ + The function ‘a’ is applied to one argument, + but its type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ has none + In the first argument of ‘plus’, namely ‘a [one]’ + In a stmt of a 'do' block: a [one] `plus` a [one] Relevant bindings include a :: forall v. [E (ST s) Int] -> E' v (ST s) Int (bound at simpl017.hs:71:5) ma :: STArray s Int Int (bound at simpl017.hs:70:5) foo :: STArray s Int Int -> ST s Int (bound at simpl017.hs:70:1) - The function ‘a’ is applied to one argument, - but its type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ has none - In the first argument of ‘plus’, namely ‘a [one]’ - In a stmt of a 'do' block: a [one] `plus` a [one] simpl017.hs:74:19: Couldn't match expected type ‘[E (ST t1) Int] -> E (ST s) Int’ with actual type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ + The function ‘a’ is applied to one argument, + but its type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ has none + In the second argument of ‘plus’, namely ‘a [one]’ + In a stmt of a 'do' block: a [one] `plus` a [one] Relevant bindings include a :: forall v. [E (ST s) Int] -> E' v (ST s) Int (bound at simpl017.hs:71:5) ma :: STArray s Int Int (bound at simpl017.hs:70:5) foo :: STArray s Int Int -> ST s Int (bound at simpl017.hs:70:1) - The function ‘a’ is applied to one argument, - but its type ‘forall v. [E (ST s) Int] -> E' v (ST s) Int’ has none - In the second argument of ‘plus’, namely ‘a [one]’ - In a stmt of a 'do' block: a [one] `plus` a [one] diff --git a/testsuite/tests/th/T10267.stderr b/testsuite/tests/th/T10267.stderr index 442a779e44..909479389d 100644 --- a/testsuite/tests/th/T10267.stderr +++ b/testsuite/tests/th/T10267.stderr @@ -5,11 +5,11 @@ T10267.hs:8:1: error: the type signature for: j :: a0 -> a0 at T10267.hs:8:1 + In the expression: _ + In an equation for ‘j’: j x = _ Relevant bindings include x :: a0 (bound at T10267.hs:8:1) j :: a0 -> a0 (bound at T10267.hs:8:1) - In the expression: _ - In an equation for ‘j’: j x = _ T10267.hs:8:1: error: Found hole: _foo :: a0 -> a0 @@ -18,9 +18,9 @@ T10267.hs:8:1: error: i :: a0 -> a0 at T10267.hs:8:1 Or perhaps ‘_foo’ is mis-spelled, or not in scope - Relevant bindings include i :: a0 -> a0 (bound at T10267.hs:8:1) In the expression: _foo In an equation for ‘i’: i = _foo + Relevant bindings include i :: a0 -> a0 (bound at T10267.hs:8:1) T10267.hs:14:3: error: Found hole: _foo :: a -> a @@ -29,9 +29,9 @@ T10267.hs:14:3: error: k :: a -> a at T10267.hs:14:3 Or perhaps ‘_foo’ is mis-spelled, or not in scope - Relevant bindings include k :: a -> a (bound at T10267.hs:14:3) In the expression: _foo In an equation for ‘k’: k = _foo + Relevant bindings include k :: a -> a (bound at T10267.hs:14:3) T10267.hs:23:3: error: Found hole: _ :: a @@ -39,8 +39,8 @@ T10267.hs:23:3: error: the type signature for: l :: a -> a at T10267.hs:23:3 + In the expression: _ + In an equation for ‘l’: l x = _ Relevant bindings include x :: a (bound at T10267.hs:23:3) l :: a -> a (bound at T10267.hs:23:3) - In the expression: _ - In an equation for ‘l’: l x = _ diff --git a/testsuite/tests/th/T7276a.stdout b/testsuite/tests/th/T7276a.stdout index 410004b14d..f18cbbd1dd 100644 --- a/testsuite/tests/th/T7276a.stdout +++ b/testsuite/tests/th/T7276a.stdout @@ -1,19 +1,19 @@ <interactive>:3:9: warning: - Couldn't match type ‘[Dec]’ with ‘Exp’ - Expected type: Q Exp - Actual type: DecsQ - In the expression: [d| a = () |] :: Q Exp - In an equation for ‘x’: x = [d| a = () |] :: Q Exp + • Couldn't match type ‘[Dec]’ with ‘Exp’ + Expected type: Q Exp + Actual type: DecsQ + • In the expression: [d| a = () |] :: Q Exp + In an equation for ‘x’: x = [d| a = () |] :: Q Exp <interactive>:1:1: error: - Exception when trying to run compile-time code: - <interactive>:3:9: error: - Couldn't match type ‘[Dec]’ with ‘Exp’ - Expected type: Q Exp - Actual type: DecsQ - In the expression: [d| a = () |] :: Q Exp - In an equation for ‘x’: x = [d| a = () |] :: Q Exp + • Exception when trying to run compile-time code: + <interactive>:3:9: error: + • Couldn't match type ‘[Dec]’ with ‘Exp’ + Expected type: Q Exp + Actual type: DecsQ + • In the expression: [d| a = () |] :: Q Exp + In an equation for ‘x’: x = [d| a = () |] :: Q Exp (deferred type error) - Code: x - In the untyped splice: $x + Code: x + • In the untyped splice: $x diff --git a/testsuite/tests/typecheck/should_compile/FD1.stderr b/testsuite/tests/typecheck/should_compile/FD1.stderr index 2b0ac1733a..661bbcd9aa 100644 --- a/testsuite/tests/typecheck/should_compile/FD1.stderr +++ b/testsuite/tests/typecheck/should_compile/FD1.stderr @@ -4,6 +4,6 @@ FD1.hs:16:1: ‘a’ is a rigid type variable bound by
the type signature for: plus :: E a (Int -> Int) => Int -> a
at FD1.hs:15:9
- Relevant bindings include plus :: Int -> a (bound at FD1.hs:16:1)
The equation(s) for ‘plus’ have two arguments,
but its type ‘Int -> a’ has only one
+ Relevant bindings include plus :: Int -> a (bound at FD1.hs:16:1)
diff --git a/testsuite/tests/typecheck/should_compile/FD2.stderr b/testsuite/tests/typecheck/should_compile/FD2.stderr index 0134d87768..590c9b6520 100644 --- a/testsuite/tests/typecheck/should_compile/FD2.stderr +++ b/testsuite/tests/typecheck/should_compile/FD2.stderr @@ -9,11 +9,11 @@ FD2.hs:26:34: the type signature for:
mf :: Elem a e1 => e1 -> Maybe e1 -> Maybe e1
at FD2.hs:24:18
+ In the first argument of ‘Just’, namely ‘(f x y)’
+ In the expression: Just (f x y)
Relevant bindings include
y :: e1 (bound at FD2.hs:26:23)
x :: e1 (bound at FD2.hs:26:15)
mf :: e1 -> Maybe e1 -> Maybe e1 (bound at FD2.hs:25:12)
f :: e -> e -> e (bound at FD2.hs:22:10)
foldr1 :: (e -> e -> e) -> a -> e (bound at FD2.hs:22:3)
- In the first argument of ‘Just’, namely ‘(f x y)’
- In the expression: Just (f x y)
diff --git a/testsuite/tests/typecheck/should_compile/FD3.stderr b/testsuite/tests/typecheck/should_compile/FD3.stderr index f4c60451d8..8d3c33fcaf 100644 --- a/testsuite/tests/typecheck/should_compile/FD3.stderr +++ b/testsuite/tests/typecheck/should_compile/FD3.stderr @@ -7,8 +7,8 @@ FD3.hs:15:15: error: ‘a’ is a rigid type variable bound by the type signature for: translate :: (String, a) -> A a at FD3.hs:14:14 + In the expression: mkA a + In an equation for ‘translate’: translate a = mkA a Relevant bindings include a :: (String, a) (bound at FD3.hs:15:11) translate :: (String, a) -> A a (bound at FD3.hs:15:1) - In the expression: mkA a - In an equation for ‘translate’: translate a = mkA a diff --git a/testsuite/tests/typecheck/should_compile/T2494.stderr b/testsuite/tests/typecheck/should_compile/T2494.stderr index 0346e62a3f..71351cba0a 100644 --- a/testsuite/tests/typecheck/should_compile/T2494.stderr +++ b/testsuite/tests/typecheck/should_compile/T2494.stderr @@ -7,14 +7,14 @@ T2494.hs:15:14: the RULE "foo/foo" at T2494.hs:13:16 Expected type: Maybe (m a) -> Maybe (m a) Actual type: Maybe (m b) -> Maybe (m b) + In the first argument of ‘foo’, namely ‘g’ + In the second argument of ‘foo’, namely ‘(foo g x)’ Relevant bindings include f :: forall (m :: * -> *). Monad m => Maybe (m a) -> Maybe (m a) (bound at T2494.hs:13:11) g :: forall (m :: * -> *). Monad m => Maybe (m b) -> Maybe (m b) (bound at T2494.hs:14:11) x :: Maybe a (bound at T2494.hs:14:65) - In the first argument of ‘foo’, namely ‘g’ - In the second argument of ‘foo’, namely ‘(foo g x)’ T2494.hs:15:30: Couldn't match type ‘b’ with ‘a’ @@ -24,11 +24,11 @@ T2494.hs:15:30: the RULE "foo/foo" at T2494.hs:13:16 Expected type: Maybe (m a) -> Maybe (m a) Actual type: Maybe (m b) -> Maybe (m b) + In the second argument of ‘(.)’, namely ‘g’ + In the first argument of ‘foo’, namely ‘(f . g)’ Relevant bindings include f :: forall (m :: * -> *). Monad m => Maybe (m a) -> Maybe (m a) (bound at T2494.hs:13:11) g :: forall (m :: * -> *). Monad m => Maybe (m b) -> Maybe (m b) (bound at T2494.hs:14:11) x :: Maybe a (bound at T2494.hs:14:65) - In the second argument of ‘(.)’, namely ‘g’ - In the first argument of ‘foo’, namely ‘(f . g)’ diff --git a/testsuite/tests/typecheck/should_compile/T9497a.stderr b/testsuite/tests/typecheck/should_compile/T9497a.stderr index f6a388d214..3982616412 100644 --- a/testsuite/tests/typecheck/should_compile/T9497a.stderr +++ b/testsuite/tests/typecheck/should_compile/T9497a.stderr @@ -2,6 +2,6 @@ T9497a.hs:2:8: warning:
Found hole: _main :: IO ()
Or perhaps ‘_main’ is mis-spelled, or not in scope
- Relevant bindings include main :: IO () (bound at T9497a.hs:2:1)
In the expression: _main
In an equation for ‘main’: main = _main
+ Relevant bindings include main :: IO () (bound at T9497a.hs:2:1)
diff --git a/testsuite/tests/typecheck/should_compile/T9834.stderr b/testsuite/tests/typecheck/should_compile/T9834.stderr index 534d16d7cb..c49e49bb9d 100644 --- a/testsuite/tests/typecheck/should_compile/T9834.stderr +++ b/testsuite/tests/typecheck/should_compile/T9834.stderr @@ -11,14 +11,14 @@ T9834.hs:23:10: Warning: Applicative q =>
Nat (Comp p q) (Comp p q))
-> p a0 -> p a0
+ In the expression: wrapIdComp
+ In an equation for ‘afix’: afix = wrapIdComp
Relevant bindings include
afix :: (forall (q :: * -> *).
Applicative q =>
Comp p q a -> Comp p q a)
-> p a
(bound at T9834.hs:23:3)
- In the expression: wrapIdComp
- In an equation for ‘afix’: afix = wrapIdComp
T9834.hs:23:10: Warning:
Couldn't match type ‘a’ with ‘p a0’
@@ -37,14 +37,14 @@ T9834.hs:23:10: Warning: Applicative q =>
Nat (Comp p q) (Comp p q))
-> p a0 -> p a0
+ In the expression: wrapIdComp
+ In an equation for ‘afix’: afix = wrapIdComp
Relevant bindings include
afix :: (forall (q :: * -> *).
Applicative q =>
Comp p q a -> Comp p q a)
-> p a
(bound at T9834.hs:23:3)
- In the expression: wrapIdComp
- In an equation for ‘afix’: afix = wrapIdComp
T9834.hs:23:10: Warning:
Couldn't match type ‘a’ with ‘a1’
@@ -61,11 +61,11 @@ T9834.hs:23:10: Warning: at T9834.hs:23:10
Expected type: Comp p q a1 -> Comp p q a1
Actual type: Comp p q a -> Comp p q a
+ In the expression: wrapIdComp
+ In an equation for ‘afix’: afix = wrapIdComp
Relevant bindings include
afix :: (forall (q :: * -> *).
Applicative q =>
Comp p q a -> Comp p q a)
-> p a
(bound at T9834.hs:23:3)
- In the expression: wrapIdComp
- In an equation for ‘afix’: afix = wrapIdComp
diff --git a/testsuite/tests/typecheck/should_compile/holes.stderr b/testsuite/tests/typecheck/should_compile/holes.stderr index 2eaf8f4d61..5cb341709e 100644 --- a/testsuite/tests/typecheck/should_compile/holes.stderr +++ b/testsuite/tests/typecheck/should_compile/holes.stderr @@ -3,31 +3,31 @@ holes.hs:3:5: warning: Found hole: _ :: t
Where: ‘t’ is a rigid type variable bound by
the inferred type of f :: t at holes.hs:3:1
- Relevant bindings include f :: t (bound at holes.hs:3:1)
In the expression: _
In an equation for ‘f’: f = _
+ Relevant bindings include f :: t (bound at holes.hs:3:1)
holes.hs:6:7: warning:
Found hole: _ :: Char
+ In the expression: _
+ In an equation for ‘g’: g x = _
Relevant bindings include
x :: Int (bound at holes.hs:6:3)
g :: Int -> Char (bound at holes.hs:6:1)
- In the expression: _
- In an equation for ‘g’: g x = _
holes.hs:8:5: warning:
Found hole: _ :: [Char]
- Relevant bindings include h :: [Char] (bound at holes.hs:8:1)
In the first argument of ‘(++)’, namely ‘_’
In the expression: _ ++ "a"
In an equation for ‘h’: h = _ ++ "a"
+ Relevant bindings include h :: [Char] (bound at holes.hs:8:1)
holes.hs:11:15: warning:
Found hole: _ :: b0
Where: ‘b0’ is an ambiguous type variable
- Relevant bindings include
- y :: [a] (bound at holes.hs:11:3)
- z :: [a] -> [a] (bound at holes.hs:11:1)
In the second argument of ‘const’, namely ‘_’
In the expression: const y _
In an equation for ‘z’: z y = const y _
+ Relevant bindings include
+ y :: [a] (bound at holes.hs:11:3)
+ z :: [a] -> [a] (bound at holes.hs:11:1)
diff --git a/testsuite/tests/typecheck/should_compile/holes2.stderr b/testsuite/tests/typecheck/should_compile/holes2.stderr index 63891fa273..869cd2d970 100644 --- a/testsuite/tests/typecheck/should_compile/holes2.stderr +++ b/testsuite/tests/typecheck/should_compile/holes2.stderr @@ -15,7 +15,7 @@ holes2.hs:3:5: warning: holes2.hs:3:10: warning: Found hole: _ :: a0 Where: ‘a0’ is an ambiguous type variable - Relevant bindings include f :: String (bound at holes2.hs:3:1) In the first argument of ‘show’, namely ‘_’ In the expression: show _ In an equation for ‘f’: f = show _ + Relevant bindings include f :: String (bound at holes2.hs:3:1) diff --git a/testsuite/tests/typecheck/should_compile/holes3.stderr b/testsuite/tests/typecheck/should_compile/holes3.stderr index 5770716972..a6e7c6194e 100644 --- a/testsuite/tests/typecheck/should_compile/holes3.stderr +++ b/testsuite/tests/typecheck/should_compile/holes3.stderr @@ -3,34 +3,34 @@ holes3.hs:3:5: error: Found hole: _ :: t
Where: ‘t’ is a rigid type variable bound by
the inferred type of f :: t at holes3.hs:3:1
- Relevant bindings include f :: t (bound at holes3.hs:3:1)
In the expression: _
In an equation for ‘f’: f = _
+ Relevant bindings include f :: t (bound at holes3.hs:3:1)
holes3.hs:6:7: error:
Found hole: _gr :: Char
Or perhaps ‘_gr’ is mis-spelled, or not in scope
+ In the expression: _gr
+ In an equation for ‘g’: g x = _gr
Relevant bindings include
x :: Int (bound at holes3.hs:6:3)
g :: Int -> Char (bound at holes3.hs:6:1)
- In the expression: _gr
- In an equation for ‘g’: g x = _gr
holes3.hs:8:5: error:
Found hole: _aa :: [Char]
Or perhaps ‘_aa’ is mis-spelled, or not in scope
- Relevant bindings include h :: [Char] (bound at holes3.hs:8:1)
In the first argument of ‘(++)’, namely ‘_aa’
In the expression: _aa ++ "a"
In an equation for ‘h’: h = _aa ++ "a"
+ Relevant bindings include h :: [Char] (bound at holes3.hs:8:1)
holes3.hs:11:15: error:
Found hole: _x :: b0
Where: ‘b0’ is an ambiguous type variable
Or perhaps ‘_x’ is mis-spelled, or not in scope
- Relevant bindings include
- y :: [a] (bound at holes3.hs:11:3)
- z :: [a] -> [a] (bound at holes3.hs:11:1)
In the second argument of ‘const’, namely ‘_x’
In the expression: const y _x
In an equation for ‘z’: z y = const y _x
+ Relevant bindings include
+ y :: [a] (bound at holes3.hs:11:3)
+ z :: [a] -> [a] (bound at holes3.hs:11:1)
diff --git a/testsuite/tests/typecheck/should_compile/tc141.stderr b/testsuite/tests/typecheck/should_compile/tc141.stderr index 07adbfce6b..933eb03f55 100644 --- a/testsuite/tests/typecheck/should_compile/tc141.stderr +++ b/testsuite/tests/typecheck/should_compile/tc141.stderr @@ -12,13 +12,13 @@ tc141.hs:11:31: This (rigid, skolem) type variable is bound by an expression type signature: a1 at tc141.hs:11:31-34 + In the expression: q :: a + In the expression: (q :: a, p) Relevant bindings include p :: a (bound at tc141.hs:11:12) q :: a (bound at tc141.hs:11:17) x :: (a, a) (bound at tc141.hs:11:3) f :: (a, a) -> (t, a) (bound at tc141.hs:11:1) - In the expression: q :: a - In the expression: (q :: a, p) tc141.hs:13:13: You cannot bind scoped type variable ‘a’ @@ -38,9 +38,9 @@ tc141.hs:15:18: This (rigid, skolem) type variable is bound by the type signature for: v :: a2 at tc141.hs:14:19 + In the expression: b + In an equation for ‘v’: v = b Relevant bindings include v :: a2 (bound at tc141.hs:15:14) b :: t (bound at tc141.hs:13:5) g :: a -> t -> a1 (bound at tc141.hs:13:1) - In the expression: b - In an equation for ‘v’: v = b diff --git a/testsuite/tests/typecheck/should_fail/FDsFromGivens2.stderr b/testsuite/tests/typecheck/should_fail/FDsFromGivens2.stderr index a738c7ffa4..a084b303dd 100644 --- a/testsuite/tests/typecheck/should_fail/FDsFromGivens2.stderr +++ b/testsuite/tests/typecheck/should_fail/FDsFromGivens2.stderr @@ -8,7 +8,7 @@ FDsFromGivens2.hs:14:15: error: KCC :: C Char Char => () -> KCC, in an equation for ‘bar’ at FDsFromGivens2.hs:14:6-10 - Relevant bindings include - bar :: KCC -> a -> a (bound at FDsFromGivens2.hs:14:1) In the expression: f In an equation for ‘bar’: bar (KCC _) = f + Relevant bindings include + bar :: KCC -> a -> a (bound at FDsFromGivens2.hs:14:1) diff --git a/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr b/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr index 932ba108d4..b545a10caa 100644 --- a/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr +++ b/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr @@ -12,10 +12,10 @@ FrozenErrorTests.hs:26:9: Occurs check: cannot construct the infinite type: a ~ [a] Expected type: [a] Actual type: F a Bool - Relevant bindings include - test1 :: a (bound at FrozenErrorTests.hs:26:1) In the expression: goo1 False undefined In an equation for ‘test1’: test1 = goo1 False undefined + Relevant bindings include + test1 :: a (bound at FrozenErrorTests.hs:26:1) FrozenErrorTests.hs:29:15: Couldn't match type ‘Int’ with ‘[Int]’ @@ -36,17 +36,17 @@ FrozenErrorTests.hs:45:15: Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) Actual type: F (T2 (T2 c c) c) Bool - Relevant bindings include - test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1) In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’ In the expression: goo4 (goo3 False undefined) In an equation for ‘test4’: test4 = goo4 (goo3 False undefined) + Relevant bindings include + test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1) FrozenErrorTests.hs:46:9: Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) Actual type: F (T2 (T2 c c) c) Bool - Relevant bindings include - test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1) In the expression: goo3 False (goo4 undefined) In an equation for ‘test5’: test5 = goo3 False (goo4 undefined) + Relevant bindings include + test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1) diff --git a/testsuite/tests/typecheck/should_fail/T10285.stderr b/testsuite/tests/typecheck/should_fail/T10285.stderr index 8a13daeae2..d14bc3b427 100644 --- a/testsuite/tests/typecheck/should_fail/T10285.stderr +++ b/testsuite/tests/typecheck/should_fail/T10285.stderr @@ -14,7 +14,7 @@ T10285.hs:8:17: error: ‘b’ is a rigid type variable bound by the type signature for: oops :: Coercion (N a) (N b) -> a -> b at T10285.hs:7:9 - Relevant bindings include - oops :: Coercion (N a) (N b) -> a -> b (bound at T10285.hs:8:1) In the expression: coerce In an equation for ‘oops’: oops Coercion = coerce + Relevant bindings include + oops :: Coercion (N a) (N b) -> a -> b (bound at T10285.hs:8:1) diff --git a/testsuite/tests/typecheck/should_fail/T10495.stderr b/testsuite/tests/typecheck/should_fail/T10495.stderr index eec1cdb7c0..ee2060017e 100644 --- a/testsuite/tests/typecheck/should_fail/T10495.stderr +++ b/testsuite/tests/typecheck/should_fail/T10495.stderr @@ -2,6 +2,6 @@ T10495.hs:5:7: error: Couldn't match representation of type ‘a0’ with that of ‘b0’ arising from a use of ‘coerce’ - Relevant bindings include foo :: a0 -> b0 (bound at T10495.hs:5:1) In the expression: coerce In an equation for ‘foo’: foo = coerce + Relevant bindings include foo :: a0 -> b0 (bound at T10495.hs:5:1) diff --git a/testsuite/tests/typecheck/should_fail/T10534.stderr b/testsuite/tests/typecheck/should_fail/T10534.stderr index 5bb0e40097..41deac7063 100644 --- a/testsuite/tests/typecheck/should_fail/T10534.stderr +++ b/testsuite/tests/typecheck/should_fail/T10534.stderr @@ -11,7 +11,7 @@ T10534a.hs:10:9: error: ‘b’ is a rigid type variable bound by the type signature for: silly :: Coercible (DF a) (DF b) => a -> b at T10534a.hs:9:10 - Relevant bindings include - silly :: a -> b (bound at T10534a.hs:10:1) In the expression: coerce In an equation for ‘silly’: silly = coerce + Relevant bindings include + silly :: a -> b (bound at T10534a.hs:10:1) diff --git a/testsuite/tests/typecheck/should_fail/T10715b.stderr b/testsuite/tests/typecheck/should_fail/T10715b.stderr index 47c85bb145..8c7f370273 100644 --- a/testsuite/tests/typecheck/should_fail/T10715b.stderr +++ b/testsuite/tests/typecheck/should_fail/T10715b.stderr @@ -2,7 +2,7 @@ T10715b.hs:7:7: error: Occurs check: cannot construct the infinite type: b ~ [b] arising from a use of ‘coerce’ - Relevant bindings include foo :: [b] -> b (bound at T10715b.hs:7:1) In the first argument of ‘asTypeOf’, namely ‘coerce’ In the expression: coerce `asTypeOf` head In an equation for ‘foo’: foo = coerce `asTypeOf` head + Relevant bindings include foo :: [b] -> b (bound at T10715b.hs:7:1) diff --git a/testsuite/tests/typecheck/should_fail/T1899.stderr b/testsuite/tests/typecheck/should_fail/T1899.stderr index 1702afcafc..d41c96a787 100644 --- a/testsuite/tests/typecheck/should_fail/T1899.stderr +++ b/testsuite/tests/typecheck/should_fail/T1899.stderr @@ -6,8 +6,8 @@ T1899.hs:14:36: error: at T1899.hs:9:14 Expected type: [Proposition a0] Actual type: [a] + In the first argument of ‘Auxiliary’, namely ‘varSet’ + In the first argument of ‘Prop’, namely ‘(Auxiliary varSet)’ Relevant bindings include varSet :: [a] (bound at T1899.hs:10:11) transRHS :: [a] -> Int -> Constraint a (bound at T1899.hs:10:2) - In the first argument of ‘Auxiliary’, namely ‘varSet’ - In the first argument of ‘Prop’, namely ‘(Auxiliary varSet)’ diff --git a/testsuite/tests/typecheck/should_fail/T2534.stderr b/testsuite/tests/typecheck/should_fail/T2534.stderr index 157521f953..fe6abae7b8 100644 --- a/testsuite/tests/typecheck/should_fail/T2534.stderr +++ b/testsuite/tests/typecheck/should_fail/T2534.stderr @@ -3,6 +3,6 @@ T2534.hs:3:13: Couldn't match type ‘[b]’ with ‘a0 -> [b]’ Expected type: [a0] -> [b] -> [b] Actual type: [a0] -> (a0 -> [b]) -> [b] - Relevant bindings include foo :: [b] (bound at T2534.hs:3:1) In the first argument of ‘foldr’, namely ‘(>>=)’ In the expression: foldr (>>=) [] [] + Relevant bindings include foo :: [b] (bound at T2534.hs:3:1) diff --git a/testsuite/tests/typecheck/should_fail/T2688.stderr b/testsuite/tests/typecheck/should_fail/T2688.stderr index 4b28d7da31..1915c41812 100644 --- a/testsuite/tests/typecheck/should_fail/T2688.stderr +++ b/testsuite/tests/typecheck/should_fail/T2688.stderr @@ -5,9 +5,9 @@ T2688.hs:8:22: the class declaration for ‘VectorSpace’ at T2688.hs:5:21 ‘v’ is a rigid type variable bound by the class declaration for ‘VectorSpace’ at T2688.hs:5:19 + In the second argument of ‘(/)’, namely ‘s’ + In the second argument of ‘(*^)’, namely ‘(1 / s)’ Relevant bindings include s :: s (bound at T2688.hs:8:10) v :: v (bound at T2688.hs:8:5) (^/) :: v -> s -> v (bound at T2688.hs:8:5) - In the second argument of ‘(/)’, namely ‘s’ - In the second argument of ‘(*^)’, namely ‘(1 / s)’ diff --git a/testsuite/tests/typecheck/should_fail/T2714.stderr b/testsuite/tests/typecheck/should_fail/T2714.stderr index 65aa78cd90..07a925cc10 100644 --- a/testsuite/tests/typecheck/should_fail/T2714.stderr +++ b/testsuite/tests/typecheck/should_fail/T2714.stderr @@ -6,10 +6,10 @@ T2714.hs:8:5: at T2714.hs:7:6
Expected type: ((a -> b) -> b) -> c -> a
Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b
- Relevant bindings include
- f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1)
In the expression: ffmap
In an equation for ‘f’: f = ffmap
+ Relevant bindings include
+ f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1)
T2714.hs:8:5:
Couldn't match type ‘c’ with ‘f0 (a -> b)’
@@ -18,7 +18,7 @@ T2714.hs:8:5: at T2714.hs:8:1
Expected type: ((a -> b) -> b) -> c -> a
Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b
- Relevant bindings include
- f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1)
In the expression: ffmap
In an equation for ‘f’: f = ffmap
+ Relevant bindings include
+ f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1)
diff --git a/testsuite/tests/typecheck/should_fail/T3950.stderr b/testsuite/tests/typecheck/should_fail/T3950.stderr index 7b4837c8b9..1771e2f5e4 100644 --- a/testsuite/tests/typecheck/should_fail/T3950.stderr +++ b/testsuite/tests/typecheck/should_fail/T3950.stderr @@ -6,7 +6,7 @@ T3950.hs:15:13: Sealed :: (* -> *) -> * Expected type: w (Id p) Actual type: Sealed (Id p0 x0) - Relevant bindings include - rp :: Bool -> Maybe (w (Id p)) (bound at T3950.hs:15:1) In the first argument of ‘Just’, namely ‘rp'’ In the expression: Just rp' + Relevant bindings include + rp :: Bool -> Maybe (w (Id p)) (bound at T3950.hs:15:1) diff --git a/testsuite/tests/typecheck/should_fail/T5689.stderr b/testsuite/tests/typecheck/should_fail/T5689.stderr index f8294f4705..6e3777d2ee 100644 --- a/testsuite/tests/typecheck/should_fail/T5689.stderr +++ b/testsuite/tests/typecheck/should_fail/T5689.stderr @@ -1,8 +1,8 @@ T5689.hs:10:36: error: Couldn't match expected type ‘Bool’ with actual type ‘t’ + In the expression: v + In the expression: if v then False else True Relevant bindings include v :: t (bound at T5689.hs:10:28) r :: IORef (t -> t) (bound at T5689.hs:7:14) - In the expression: v - In the expression: if v then False else True diff --git a/testsuite/tests/typecheck/should_fail/T5853.stderr b/testsuite/tests/typecheck/should_fail/T5853.stderr index 2d5c90284b..231d57dcdd 100644 --- a/testsuite/tests/typecheck/should_fail/T5853.stderr +++ b/testsuite/tests/typecheck/should_fail/T5853.stderr @@ -10,9 +10,9 @@ T5853.hs:15:52: error: bound by the RULE "map/map" at T5853.hs:15:2-57 ‘t2’ is a rigid type variable bound by the RULE "map/map" at T5853.hs:15:2 + In the expression: (f . g) <$> xs + When checking the transformation rule "map/map" Relevant bindings include f :: Elem t -> Elem t2 (bound at T5853.hs:15:19) g :: Elem t1 -> Elem t (bound at T5853.hs:15:21) xs :: t1 (bound at T5853.hs:15:23) - In the expression: (f . g) <$> xs - When checking the transformation rule "map/map" diff --git a/testsuite/tests/typecheck/should_fail/T7264.stderr b/testsuite/tests/typecheck/should_fail/T7264.stderr index b2696d41bb..4b5b3557d9 100644 --- a/testsuite/tests/typecheck/should_fail/T7264.stderr +++ b/testsuite/tests/typecheck/should_fail/T7264.stderr @@ -5,8 +5,8 @@ T7264.hs:13:19: the inferred type of mkFoo2 :: a -> Maybe Foo at T7264.hs:13:1 Expected type: a -> Foo Actual type: (forall r. r -> String) -> Foo + In the first argument of ‘mmap’, namely ‘Foo’ + In the expression: mmap Foo (Just val) Relevant bindings include val :: a (bound at T7264.hs:13:8) mkFoo2 :: a -> Maybe Foo (bound at T7264.hs:13:1) - In the first argument of ‘mmap’, namely ‘Foo’ - In the expression: mmap Foo (Just val) diff --git a/testsuite/tests/typecheck/should_fail/T7368a.stderr b/testsuite/tests/typecheck/should_fail/T7368a.stderr index 7ee59e129e..a4f796ce6f 100644 --- a/testsuite/tests/typecheck/should_fail/T7368a.stderr +++ b/testsuite/tests/typecheck/should_fail/T7368a.stderr @@ -6,7 +6,7 @@ T7368a.hs:8:6: error: Bad :: (* -> *) -> * Expected type: f (Bad f) Actual type: Bad t0 - Relevant bindings include - fun :: f (Bad f) -> Bool (bound at T7368a.hs:8:1) In the pattern: Bad x In an equation for ‘fun’: fun (Bad x) = True + Relevant bindings include + fun :: f (Bad f) -> Bool (bound at T7368a.hs:8:1) diff --git a/testsuite/tests/typecheck/should_fail/T7453.stderr b/testsuite/tests/typecheck/should_fail/T7453.stderr index 0a0f73d47e..4ca1218772 100644 --- a/testsuite/tests/typecheck/should_fail/T7453.stderr +++ b/testsuite/tests/typecheck/should_fail/T7453.stderr @@ -5,13 +5,13 @@ T7453.hs:10:30: error: This (rigid, skolem) type variable is bound by the type signature for: z :: Id t1 at T7453.hs:8:16-19 + In the first argument of ‘Id’, namely ‘v’ + In the expression: Id v 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:16:33: error: Couldn't match expected type ‘t2’ with actual type ‘t’ @@ -19,13 +19,13 @@ T7453.hs:16:33: error: This (rigid, skolem) type variable is bound by the type signature for: z :: () -> t2 at T7453.hs:14:16-22 + In the first argument of ‘const’, namely ‘v’ + In the expression: const v 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:21:15: error: Couldn't match expected type ‘t2’ with actual type ‘t’ @@ -33,13 +33,13 @@ T7453.hs:21:15: error: This (rigid, skolem) type variable is bound by the type signature for: z :: t2 at T7453.hs:20:16 - Relevant bindings include - aux :: forall b. b -> t2 (bound at T7453.hs:22:21) - z :: t2 (bound at T7453.hs:21:11) - v :: t (bound at T7453.hs:19:7) - cast3 :: t -> t1 (bound at T7453.hs:19:1) In the expression: v In an equation for ‘z’: z = v where aux = const v + Relevant bindings include + aux :: forall b. b -> t2 (bound at T7453.hs:22:21) + z :: t2 (bound at T7453.hs:21:11) + v :: t (bound at T7453.hs:19:7) + cast3 :: t -> t1 (bound at T7453.hs:19:1) diff --git a/testsuite/tests/typecheck/should_fail/T7696.stderr b/testsuite/tests/typecheck/should_fail/T7696.stderr index 1fc2e43755..73da26c4f4 100644 --- a/testsuite/tests/typecheck/should_fail/T7696.stderr +++ b/testsuite/tests/typecheck/should_fail/T7696.stderr @@ -6,6 +6,6 @@ T7696.hs:7:6: error: w :: * -> * Expected type: ((), w ()) Actual type: (m0 a0, t0 m0) - Relevant bindings include f2 :: ((), w ()) (bound at T7696.hs:7:1) In the expression: f1 In an equation for ‘f2’: f2 = f1 + Relevant bindings include f2 :: ((), w ()) (bound at T7696.hs:7:1) diff --git a/testsuite/tests/typecheck/should_fail/T7734.stderr b/testsuite/tests/typecheck/should_fail/T7734.stderr index 3f59340441..9cd71add8d 100644 --- a/testsuite/tests/typecheck/should_fail/T7734.stderr +++ b/testsuite/tests/typecheck/should_fail/T7734.stderr @@ -1,16 +1,16 @@ T7734.hs:4:13: Occurs check: cannot construct the infinite type: t2 ~ t2 -> t1 + In the first argument of ‘x’, namely ‘x’ + In the expression: x x Relevant bindings include x :: t2 -> t1 (bound at T7734.hs:4:1) f :: (t2 -> t1) -> t -> t1 (bound at T7734.hs:4:1) - In the first argument of ‘x’, namely ‘x’ - In the expression: x x T7734.hs:5:13: Occurs check: cannot construct the infinite type: t2 ~ t2 -> t1 + In the first argument of ‘x’, namely ‘x’ + In the expression: x x Relevant bindings include x :: t2 -> t1 (bound at T7734.hs:5:5) (&) :: (t2 -> t1) -> t -> t1 (bound at T7734.hs:5:1) - In the first argument of ‘x’, namely ‘x’ - In the expression: x x diff --git a/testsuite/tests/typecheck/should_fail/T7748a.stderr b/testsuite/tests/typecheck/should_fail/T7748a.stderr index a8e2921a92..5e546b171a 100644 --- a/testsuite/tests/typecheck/should_fail/T7748a.stderr +++ b/testsuite/tests/typecheck/should_fail/T7748a.stderr @@ -4,11 +4,6 @@ T7748a.hs:16:24: with actual type ‘Maybe (Maybe (r -> ()))’ ‘a’ is a rigid type variable bound by the type signature for: test :: a -> r -> () at T7748a.hs:11:9 - Relevant bindings include - g :: r -> () (bound at T7748a.hs:13:16) - f :: r -> () (bound at T7748a.hs:13:8) - zd :: a (bound at T7748a.hs:12:6) - test :: a -> r -> () (bound at T7748a.hs:12:1) In the pattern: Just (Just p) In a case alternative: Just (Just p) -> p In the expression: @@ -16,3 +11,8 @@ T7748a.hs:16:24: Nothing -> const () Just Nothing -> const () Just (Just p) -> p } + Relevant bindings include + g :: r -> () (bound at T7748a.hs:13:16) + f :: r -> () (bound at T7748a.hs:13:8) + zd :: a (bound at T7748a.hs:12:6) + test :: a -> r -> () (bound at T7748a.hs:12:1) diff --git a/testsuite/tests/typecheck/should_fail/T7869.stderr b/testsuite/tests/typecheck/should_fail/T7869.stderr index dd3aabc464..74a483602d 100644 --- a/testsuite/tests/typecheck/should_fail/T7869.stderr +++ b/testsuite/tests/typecheck/should_fail/T7869.stderr @@ -7,12 +7,12 @@ T7869.hs:3:12: at T7869.hs:3:5-27 Expected type: [a1] -> b1 Actual type: [a] -> b - Relevant bindings include - x :: [a1] (bound at T7869.hs:3:7) - f :: [a] -> b (bound at T7869.hs:3:1) In the expression: f x In the expression: (\ x -> f x) :: [a] -> b In an equation for ‘f’: f = (\ x -> f x) :: [a] -> b + Relevant bindings include + x :: [a1] (bound at T7869.hs:3:7) + f :: [a] -> b (bound at T7869.hs:3:1) T7869.hs:3:12: Couldn't match type ‘b’ with ‘b1’ @@ -22,7 +22,7 @@ T7869.hs:3:12: at T7869.hs:3:5-27 Expected type: [a1] -> b1 Actual type: [a] -> b - Relevant bindings include f :: [a] -> b (bound at T7869.hs:3:1) In the expression: f x In the expression: (\ x -> f x) :: [a] -> b In an equation for ‘f’: f = (\ x -> f x) :: [a] -> b + Relevant bindings include f :: [a] -> b (bound at T7869.hs:3:1) diff --git a/testsuite/tests/typecheck/should_fail/T8044.stderr b/testsuite/tests/typecheck/should_fail/T8044.stderr index 6178ea3d47..78ef035af8 100644 --- a/testsuite/tests/typecheck/should_fail/T8044.stderr +++ b/testsuite/tests/typecheck/should_fail/T8044.stderr @@ -3,7 +3,7 @@ T8044.hs:16:13: Couldn't match type ‘Frob a’ with ‘Char’ Expected type: X (Frob a) Actual type: X Char - Relevant bindings include - frob :: X a -> X (Frob a) (bound at T8044.hs:15:1) In the expression: XChar In an equation for ‘frob’: frob _ = XChar + Relevant bindings include + frob :: X a -> X (Frob a) (bound at T8044.hs:15:1) diff --git a/testsuite/tests/typecheck/should_fail/T8142.stderr b/testsuite/tests/typecheck/should_fail/T8142.stderr index 43a3a46be0..93b2bf4914 100644 --- a/testsuite/tests/typecheck/should_fail/T8142.stderr +++ b/testsuite/tests/typecheck/should_fail/T8142.stderr @@ -18,7 +18,7 @@ T8142.hs:6:57: error: Couldn't match type ‘Nu ((,) t)’ with ‘g (Nu ((,) t))’ Expected type: Nu ((,) t) -> (t, g (Nu ((,) t))) Actual type: Nu ((,) t) -> (t, Nu ((,) t)) - Relevant bindings include - h :: Nu ((,) t) -> Nu g (bound at T8142.hs:6:18) In the second argument of ‘(.)’, namely ‘out’ In the expression: (\ (_, b) -> ((outI . fmap h) b)) . out + Relevant bindings include + h :: Nu ((,) t) -> Nu g (bound at T8142.hs:6:18) diff --git a/testsuite/tests/typecheck/should_fail/T8262.stderr b/testsuite/tests/typecheck/should_fail/T8262.stderr index 5d77a6cb4a..b6f7ef7711 100644 --- a/testsuite/tests/typecheck/should_fail/T8262.stderr +++ b/testsuite/tests/typecheck/should_fail/T8262.stderr @@ -4,8 +4,8 @@ T8262.hs:5:15: error: When matching types a :: * Int# :: # - Relevant bindings include - foo :: t -> Maybe a (bound at T8262.hs:5:1) In the first argument of ‘Just’, namely ‘(1#)’ In the expression: Just (1#) In an equation for ‘foo’: foo x = Just (1#) + Relevant bindings include + foo :: t -> Maybe a (bound at T8262.hs:5:1) diff --git a/testsuite/tests/typecheck/should_fail/T8428.stderr b/testsuite/tests/typecheck/should_fail/T8428.stderr index 49c20a5b8f..cb4724331c 100644 --- a/testsuite/tests/typecheck/should_fail/T8428.stderr +++ b/testsuite/tests/typecheck/should_fail/T8428.stderr @@ -3,8 +3,8 @@ T8428.hs:11:19: Couldn't match type ‘(forall s. ST s) a’ with ‘forall s. ST s a’ Expected type: IdentityT (forall s. ST s) a -> forall s. ST s a Actual type: IdentityT (forall s. ST s) a -> (forall s. ST s) a + In the second argument of ‘(.)’, namely ‘runIdentityT’ + In the expression: runST . runIdentityT Relevant bindings include runIdST :: IdentityT (forall s. ST s) a -> a (bound at T8428.hs:11:1) - In the second argument of ‘(.)’, namely ‘runIdentityT’ - In the expression: runST . runIdentityT diff --git a/testsuite/tests/typecheck/should_fail/T8450.stderr b/testsuite/tests/typecheck/should_fail/T8450.stderr index 1416f2aec2..9cc70fa0df 100644 --- a/testsuite/tests/typecheck/should_fail/T8450.stderr +++ b/testsuite/tests/typecheck/should_fail/T8450.stderr @@ -3,7 +3,7 @@ T8450.hs:8:7: Couldn't match expected type ‘a’ with actual type ‘()’ ‘a’ is a rigid type variable bound by the type signature for: run :: a at T8450.hs:7:15 - Relevant bindings include run :: a (bound at T8450.hs:8:1) In the expression: runEffect $ (undefined :: Either a ()) In an equation for ‘run’: run = runEffect $ (undefined :: Either a ()) + Relevant bindings include run :: a (bound at T8450.hs:8:1) diff --git a/testsuite/tests/typecheck/should_fail/T9109.stderr b/testsuite/tests/typecheck/should_fail/T9109.stderr index 1c7e6e5c09..afd77c4f81 100644 --- a/testsuite/tests/typecheck/should_fail/T9109.stderr +++ b/testsuite/tests/typecheck/should_fail/T9109.stderr @@ -9,6 +9,6 @@ T9109.hs:8:13: ‘t’ is a rigid type variable bound by the inferred type of foo :: G t1 -> t at T9109.hs:8:1 Possible fix: add a type signature for ‘foo’ - Relevant bindings include foo :: G t1 -> t (bound at T9109.hs:8:1) In the expression: True In an equation for ‘foo’: foo GBool = True + Relevant bindings include foo :: G t1 -> t (bound at T9109.hs:8:1) diff --git a/testsuite/tests/typecheck/should_fail/T9497d.stderr b/testsuite/tests/typecheck/should_fail/T9497d.stderr index 7838120ad6..1e99f97ea1 100644 --- a/testsuite/tests/typecheck/should_fail/T9497d.stderr +++ b/testsuite/tests/typecheck/should_fail/T9497d.stderr @@ -2,6 +2,6 @@ T9497d.hs:2:8: error:
Found hole: _main :: IO ()
Or perhaps ‘_main’ is mis-spelled, or not in scope
- Relevant bindings include main :: IO () (bound at T9497d.hs:2:1)
In the expression: _main
In an equation for ‘main’: main = _main
+ Relevant bindings include main :: IO () (bound at T9497d.hs:2:1)
diff --git a/testsuite/tests/typecheck/should_fail/T9605.stderr b/testsuite/tests/typecheck/should_fail/T9605.stderr index 4ba1d33382..479899c20f 100644 --- a/testsuite/tests/typecheck/should_fail/T9605.stderr +++ b/testsuite/tests/typecheck/should_fail/T9605.stderr @@ -3,9 +3,9 @@ T9605.hs:7:6: Couldn't match type ‘Bool’ with ‘m Bool’ Expected type: t0 -> m Bool Actual type: t0 -> Bool - Relevant bindings include f2 :: m Bool (bound at T9605.hs:7:1) The function ‘f1’ is applied to one argument, its type is ‘m0 Bool’, it is specialized to ‘t0 -> Bool’ In the expression: f1 undefined In an equation for ‘f2’: f2 = f1 undefined + Relevant bindings include f2 :: m Bool (bound at T9605.hs:7:1) diff --git a/testsuite/tests/typecheck/should_fail/T9612.stderr b/testsuite/tests/typecheck/should_fail/T9612.stderr index bffceb0baa..b5e6023664 100644 --- a/testsuite/tests/typecheck/should_fail/T9612.stderr +++ b/testsuite/tests/typecheck/should_fail/T9612.stderr @@ -5,11 +5,6 @@ T9612.hs:16:9: error: constraint ‘MonadWriter (Int, a) (WriterT [(Int, a)] Identity)’ arising from a use of ‘tell’ instance ‘MonadWriter w (WriterT w m)’ at T9612.hs:20:10-59 - Relevant bindings include - x :: a (bound at T9612.hs:14:8) - y :: a (bound at T9612.hs:14:3) - f :: a -> (Int, a) -> Writer [(Int, a)] (Int, a) - (bound at T9612.hs:14:1) In a stmt of a 'do' block: tell (n, x) In the expression: do { tell (n, x); @@ -18,3 +13,8 @@ T9612.hs:16:9: error: f y (n, x) = do { tell (n, x); return (1, y) } + Relevant bindings include + x :: a (bound at T9612.hs:14:8) + y :: a (bound at T9612.hs:14:3) + f :: a -> (Int, a) -> Writer [(Int, a)] (Int, a) + (bound at T9612.hs:14:1) diff --git a/testsuite/tests/typecheck/should_fail/TcCoercibleFail.stderr b/testsuite/tests/typecheck/should_fail/TcCoercibleFail.stderr index e41d8c1b10..c97acc25a7 100644 --- a/testsuite/tests/typecheck/should_fail/TcCoercibleFail.stderr +++ b/testsuite/tests/typecheck/should_fail/TcCoercibleFail.stderr @@ -11,11 +11,11 @@ TcCoercibleFail.hs:14:8: error: arising from a use of ‘coerce’ NB: We cannot know what roles the parameters to ‘m’ have; we must assume that the role is nominal - Relevant bindings include - foo2 :: m Age (bound at TcCoercibleFail.hs:14:1) In the expression: coerce In the expression: coerce $ (return one :: m Int) In an equation for ‘foo2’: foo2 = coerce $ (return one :: m Int) + Relevant bindings include + foo2 :: m Age (bound at TcCoercibleFail.hs:14:1) TcCoercibleFail.hs:16:8: error: Couldn't match type ‘Int’ with ‘Age’ arising from a use of ‘coerce’ diff --git a/testsuite/tests/typecheck/should_fail/mc22.stderr b/testsuite/tests/typecheck/should_fail/mc22.stderr index 9501f93b97..aab0c1bdc3 100644 --- a/testsuite/tests/typecheck/should_fail/mc22.stderr +++ b/testsuite/tests/typecheck/should_fail/mc22.stderr @@ -16,6 +16,6 @@ mc22.hs:10:26: a type expected by the context: [a] -> [t a] at mc22.hs:9:9
Expected type: [a] -> [t a]
Actual type: [t a] -> [t a]
- Relevant bindings include foo :: [t [Char]] (bound at mc22.hs:8:1)
In the expression: take 5
In a stmt of a monad comprehension: then group using take 5
+ Relevant bindings include foo :: [t [Char]] (bound at mc22.hs:8:1)
diff --git a/testsuite/tests/typecheck/should_fail/mc23.stderr b/testsuite/tests/typecheck/should_fail/mc23.stderr index 9f4a467a9d..945d1a6db8 100644 --- a/testsuite/tests/typecheck/should_fail/mc23.stderr +++ b/testsuite/tests/typecheck/should_fail/mc23.stderr @@ -3,7 +3,7 @@ mc23.hs:9:29: Couldn't match type ‘[a0]’ with ‘[a] -> m a’ Expected type: (a -> b) -> [a] -> m a Actual type: [a0] -> [a0] - Relevant bindings include z :: m b (bound at mc23.hs:9:1) Possible cause: ‘take’ is applied to too many arguments In the expression: take 5 In a stmt of a monad comprehension: then take 5 by x + Relevant bindings include z :: m b (bound at mc23.hs:9:1) diff --git a/testsuite/tests/typecheck/should_fail/mc24.stderr b/testsuite/tests/typecheck/should_fail/mc24.stderr index 3260edbcb7..b14fd81162 100644 --- a/testsuite/tests/typecheck/should_fail/mc24.stderr +++ b/testsuite/tests/typecheck/should_fail/mc24.stderr @@ -3,7 +3,7 @@ mc24.hs:10:31: Couldn't match type ‘[a0]’ with ‘[a] -> m [a]’ Expected type: (a -> Integer) -> [a] -> m [a] Actual type: [a0] -> [a0] - Relevant bindings include foo :: m Int (bound at mc24.hs:8:1) Possible cause: ‘take’ is applied to too many arguments In the expression: take 2 In a stmt of a monad comprehension: then group by x using take 2 + Relevant bindings include foo :: m Int (bound at mc24.hs:8:1) diff --git a/testsuite/tests/typecheck/should_fail/mc25.stderr b/testsuite/tests/typecheck/should_fail/mc25.stderr index ec88439e89..0989dbcf70 100644 --- a/testsuite/tests/typecheck/should_fail/mc25.stderr +++ b/testsuite/tests/typecheck/should_fail/mc25.stderr @@ -13,6 +13,6 @@ mc25.hs:9:46: error: Couldn't match type ‘a -> t’ with ‘Int’ Expected type: (a -> t) -> [a] -> [t1 a] Actual type: Int -> [t1 a] -> [t1 a] - Relevant bindings include z :: [t1 t] (bound at mc25.hs:9:1) In the expression: take In a stmt of a monad comprehension: then group by x using take + Relevant bindings include z :: [t1 t] (bound at mc25.hs:9:1) diff --git a/testsuite/tests/typecheck/should_fail/tcfail001.stderr b/testsuite/tests/typecheck/should_fail/tcfail001.stderr index 3c67882546..b30d995455 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail001.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail001.stderr @@ -1,7 +1,7 @@ tcfail001.hs:9:2: Couldn't match expected type ‘[t0] -> [t1]’ with actual type ‘[a]’ - Relevant bindings include op :: [a] (bound at tcfail001.hs:9:2) The equation(s) for ‘op’ have one argument, but its type ‘[a]’ has none In the instance declaration for ‘A [a]’ + Relevant bindings include op :: [a] (bound at tcfail001.hs:9:2) diff --git a/testsuite/tests/typecheck/should_fail/tcfail002.stderr b/testsuite/tests/typecheck/should_fail/tcfail002.stderr index 11e8078a1b..4017239930 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail002.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail002.stderr @@ -1,8 +1,8 @@ tcfail002.hs:4:7: Occurs check: cannot construct the infinite type: t ~ [t] + In the expression: z + In an equation for ‘c’: c z = z Relevant bindings include z :: [t] (bound at tcfail002.hs:4:3) c :: [t] -> t (bound at tcfail002.hs:3:1) - In the expression: z - In an equation for ‘c’: c z = z diff --git a/testsuite/tests/typecheck/should_fail/tcfail004.stderr b/testsuite/tests/typecheck/should_fail/tcfail004.stderr index 48840e7298..9c51edc5b2 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail004.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail004.stderr @@ -2,8 +2,8 @@ tcfail004.hs:3:9:
Couldn't match expected type ‘(t, t1)’
with actual type ‘(Integer, Integer, Integer)’
+ In the expression: (1, 2, 3)
+ In a pattern binding: (f, g) = (1, 2, 3)
Relevant bindings include
f :: t (bound at tcfail004.hs:3:2)
g :: t1 (bound at tcfail004.hs:3:4)
- In the expression: (1, 2, 3)
- In a pattern binding: (f, g) = (1, 2, 3)
diff --git a/testsuite/tests/typecheck/should_fail/tcfail005.stderr b/testsuite/tests/typecheck/should_fail/tcfail005.stderr index 36f0e738e4..c9d3360243 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail005.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail005.stderr @@ -2,8 +2,8 @@ tcfail005.hs:3:9:
Couldn't match expected type ‘[t]’
with actual type ‘(Integer, Char)’
+ In the expression: (1, 'a')
+ In a pattern binding: (h : i) = (1, 'a')
Relevant bindings include
h :: t (bound at tcfail005.hs:3:2)
i :: [t] (bound at tcfail005.hs:3:4)
- In the expression: (1, 'a')
- In a pattern binding: (h : i) = (1, 'a')
diff --git a/testsuite/tests/typecheck/should_fail/tcfail013.stderr b/testsuite/tests/typecheck/should_fail/tcfail013.stderr index bf567acc2b..2f200abcce 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail013.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail013.stderr @@ -1,6 +1,6 @@ tcfail013.hs:4:3: Couldn't match expected type ‘[t]’ with actual type ‘Bool’ - Relevant bindings include f :: [t] -> a (bound at tcfail013.hs:3:1) In the pattern: True In an equation for ‘f’: f True = 2 + Relevant bindings include f :: [t] -> a (bound at tcfail013.hs:3:1) diff --git a/testsuite/tests/typecheck/should_fail/tcfail014.stderr b/testsuite/tests/typecheck/should_fail/tcfail014.stderr index d133863e34..bf28aa76b7 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail014.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail014.stderr @@ -1,8 +1,8 @@ tcfail014.hs:5:33: Occurs check: cannot construct the infinite type: t8 ~ t8 -> t7 + In the first argument of ‘z’, namely ‘z’ + In the expression: z z Relevant bindings include z :: t8 -> t7 (bound at tcfail014.hs:5:27) h :: (t8 -> t7) -> t7 (bound at tcfail014.hs:5:25) - In the first argument of ‘z’, namely ‘z’ - In the expression: z z diff --git a/testsuite/tests/typecheck/should_fail/tcfail016.stderr b/testsuite/tests/typecheck/should_fail/tcfail016.stderr index 4180007122..59c8fa4e3d 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail016.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail016.stderr @@ -3,20 +3,20 @@ tcfail016.hs:9:20: Couldn't match type ‘(t, Expr t)’ with ‘Expr t’ Expected type: Expr t Actual type: AnnExpr t + In the first argument of ‘g’, namely ‘e1’ + In the first argument of ‘(++)’, namely ‘(g e1)’ Relevant bindings include e2 :: AnnExpr t (bound at tcfail016.hs:9:11) e1 :: AnnExpr t (bound at tcfail016.hs:9:8) g :: Expr t -> [[Char]] (bound at tcfail016.hs:8:1) - In the first argument of ‘g’, namely ‘e1’ - In the first argument of ‘(++)’, namely ‘(g e1)’ tcfail016.hs:9:28: Couldn't match type ‘(t, Expr t)’ with ‘Expr t’ Expected type: Expr t Actual type: AnnExpr t + In the first argument of ‘g’, namely ‘e2’ + In the second argument of ‘(++)’, namely ‘(g e2)’ Relevant bindings include e2 :: AnnExpr t (bound at tcfail016.hs:9:11) e1 :: AnnExpr t (bound at tcfail016.hs:9:8) g :: Expr t -> [[Char]] (bound at tcfail016.hs:8:1) - In the first argument of ‘g’, namely ‘e2’ - In the second argument of ‘(++)’, namely ‘(g e2)’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail032.stderr b/testsuite/tests/typecheck/should_fail/tcfail032.stderr index 4d41c103da..90888af1b2 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail032.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail032.stderr @@ -5,8 +5,8 @@ tcfail032.hs:14:8: This (rigid, skolem) type variable is bound by an expression type signature: Eq a1 => a1 -> Int at tcfail032.hs:14:8-30 + In the expression: (x :: (Eq a) => a -> Int) + In an equation for ‘f’: f x = (x :: (Eq a) => a -> Int) Relevant bindings include x :: t (bound at tcfail032.hs:14:3) f :: t -> a -> Int (bound at tcfail032.hs:14:1) - In the expression: (x :: (Eq a) => a -> Int) - In an equation for ‘f’: f x = (x :: (Eq a) => a -> Int) diff --git a/testsuite/tests/typecheck/should_fail/tcfail033.stderr b/testsuite/tests/typecheck/should_fail/tcfail033.stderr index ea517ea7b4..fd2887de60 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail033.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail033.stderr @@ -1,9 +1,9 @@ tcfail033.hs:4:12: Occurs check: cannot construct the infinite type: t ~ (t, t1) + In the expression: x + In the expression: [x | (x, y) <- buglet] Relevant bindings include y :: t1 (bound at tcfail033.hs:4:19) x :: t (bound at tcfail033.hs:4:17) buglet :: [(t, t1)] (bound at tcfail033.hs:4:1) - In the expression: x - In the expression: [x | (x, y) <- buglet] diff --git a/testsuite/tests/typecheck/should_fail/tcfail065.stderr b/testsuite/tests/typecheck/should_fail/tcfail065.stderr index 02338415d1..ddb40dd491 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail065.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail065.stderr @@ -6,8 +6,8 @@ tcfail065.hs:29:20: at tcfail065.hs:29:3
‘x’ is a rigid type variable bound by
the instance declaration at tcfail065.hs:28:10
+ In the first argument of ‘X’, namely ‘x’
+ In the expression: X x
Relevant bindings include
x :: x1 (bound at tcfail065.hs:29:8)
setX :: x1 -> X x -> X x (bound at tcfail065.hs:29:3)
- In the first argument of ‘X’, namely ‘x’
- In the expression: X x
diff --git a/testsuite/tests/typecheck/should_fail/tcfail068.stderr b/testsuite/tests/typecheck/should_fail/tcfail068.stderr index d7c8ed7aba..330b1dceb0 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail068.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail068.stderr @@ -10,12 +10,12 @@ tcfail068.hs:14:9: at tcfail068.hs:11:10 Expected type: ST s1 (IndTree s a) Actual type: ST s1 (STArray s1 (Int, Int) a) - Relevant bindings include - itgen :: (Int, Int) -> a -> IndTree s a - (bound at tcfail068.hs:12:1) In the first argument of ‘runST’, namely ‘(newSTArray ((1, 1), n) x)’ In the expression: runST (newSTArray ((1, 1), n) x) + Relevant bindings include + itgen :: (Int, Int) -> a -> IndTree s a + (bound at tcfail068.hs:12:1) tcfail068.hs:19:21: Couldn't match type ‘s’ with ‘s1’ @@ -29,12 +29,12 @@ tcfail068.hs:19:21: at tcfail068.hs:18:9 Expected type: STArray s1 (Int, Int) a Actual type: IndTree s a + In the first argument of ‘readSTArray’, namely ‘arr’ + In the first argument of ‘(>>=)’, namely ‘readSTArray arr i’ Relevant bindings include arr :: IndTree s a (bound at tcfail068.hs:17:11) itiap :: (Int, Int) -> (a -> a) -> IndTree s a -> IndTree s a (bound at tcfail068.hs:17:1) - In the first argument of ‘readSTArray’, namely ‘arr’ - In the first argument of ‘(>>=)’, namely ‘readSTArray arr i’ tcfail068.hs:24:36: Couldn't match type ‘s’ with ‘s1’ @@ -48,6 +48,8 @@ tcfail068.hs:24:36: at tcfail068.hs:24:29 Expected type: ST s1 (IndTree s a) Actual type: ST s (IndTree s a) + In the first argument of ‘runST’, namely ‘(itrap' i k)’ + In the expression: runST (itrap' i k) Relevant bindings include itrap' :: Int -> Int -> ST s (IndTree s a) (bound at tcfail068.hs:26:9) @@ -57,8 +59,6 @@ tcfail068.hs:24:36: itrap :: ((Int, Int), (Int, Int)) -> (a -> a) -> IndTree s a -> IndTree s a (bound at tcfail068.hs:24:1) - In the first argument of ‘runST’, namely ‘(itrap' i k)’ - In the expression: runST (itrap' i k) tcfail068.hs:36:46: Couldn't match type ‘s’ with ‘s1’ @@ -78,6 +78,8 @@ tcfail068.hs:36:46: at tcfail068.hs:36:40 Expected type: ST s1 (c, IndTree s b) Actual type: ST s (c, IndTree s b) + In the first argument of ‘runST’, namely ‘(itrapstate' i k s)’ + In the expression: runST (itrapstate' i k s) Relevant bindings include itrapstate' :: Int -> Int -> c -> ST s (c, IndTree s b) (bound at tcfail068.hs:38:9) @@ -92,5 +94,3 @@ tcfail068.hs:36:46: -> IndTree s b -> (c, IndTree s b) (bound at tcfail068.hs:36:1) - In the first argument of ‘runST’, namely ‘(itrapstate' i k s)’ - In the expression: runST (itrapstate' i k s) diff --git a/testsuite/tests/typecheck/should_fail/tcfail076.stderr b/testsuite/tests/typecheck/should_fail/tcfail076.stderr index b5ad5cd2d6..869b9472f3 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail076.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail076.stderr @@ -9,8 +9,8 @@ tcfail076.hs:18:82: at tcfail076.hs:18:64 Expected type: m res1 Actual type: m res + In the expression: cont a + In the first argument of ‘KContT’, namely ‘(\ cont' -> cont a)’ Relevant bindings include cont' :: b -> m res1 (bound at tcfail076.hs:18:73) cont :: a -> m res (bound at tcfail076.hs:18:37) - In the expression: cont a - In the first argument of ‘KContT’, namely ‘(\ cont' -> cont a)’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail099.stderr b/testsuite/tests/typecheck/should_fail/tcfail099.stderr index cb3008cf7b..9fdccb3335 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail099.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail099.stderr @@ -6,9 +6,9 @@ tcfail099.hs:9:20: a pattern with constructor: C :: forall a. (a -> Int) -> DS,
in an equation for ‘call’
at tcfail099.hs:9:7-9
+ In the first argument of ‘f’, namely ‘arg’
+ In the expression: f arg
Relevant bindings include
arg :: t (bound at tcfail099.hs:9:12)
f :: a -> Int (bound at tcfail099.hs:9:9)
call :: DS -> t -> Int (bound at tcfail099.hs:9:1)
- In the first argument of ‘f’, namely ‘arg’
- In the expression: f arg
diff --git a/testsuite/tests/typecheck/should_fail/tcfail103.stderr b/testsuite/tests/typecheck/should_fail/tcfail103.stderr index 1b57893608..17a434f0ae 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail103.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail103.stderr @@ -7,9 +7,9 @@ tcfail103.hs:15:23: the type signature for: g :: ST s Int at tcfail103.hs:13:14
Expected type: STRef s Int
Actual type: STRef t Int
+ In the first argument of ‘readSTRef’, namely ‘v’
+ In the expression: readSTRef v
Relevant bindings include
g :: ST s Int (bound at tcfail103.hs:15:9)
v :: STRef t Int (bound at tcfail103.hs:12:5)
f :: ST t Int (bound at tcfail103.hs:11:1)
- In the first argument of ‘readSTRef’, namely ‘v’
- In the expression: readSTRef v
diff --git a/testsuite/tests/typecheck/should_fail/tcfail122.stderr b/testsuite/tests/typecheck/should_fail/tcfail122.stderr index fdd444d1fc..47b391df6d 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail122.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail122.stderr @@ -6,7 +6,6 @@ tcfail122.hs:8:9: error: a :: * -> * Expected type: a b Actual type: c0 d0 - Relevant bindings include foo :: [a b] (bound at tcfail122.hs:7:1) In the expression: undefined :: forall (c :: (* -> *) -> *) (d :: * -> *). c d In the expression: @@ -16,3 +15,4 @@ tcfail122.hs:8:9: error: foo = [undefined :: forall a b. a b, undefined :: forall (c :: (* -> *) -> *) (d :: * -> *). c d] + Relevant bindings include foo :: [a b] (bound at tcfail122.hs:7:1) diff --git a/testsuite/tests/typecheck/should_fail/tcfail131.stderr b/testsuite/tests/typecheck/should_fail/tcfail131.stderr index cb2bd64e5b..3a209ab5e0 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail131.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail131.stderr @@ -3,8 +3,8 @@ tcfail131.hs:7:9: Couldn't match expected type ‘b’ with actual type ‘Integer’
‘b’ is a rigid type variable bound by
the type signature for: g :: Num b => b -> b at tcfail131.hs:6:8
+ In the expression: f x x
+ In an equation for ‘g’: g x = f x x
Relevant bindings include
x :: b (bound at tcfail131.hs:7:5)
g :: b -> b (bound at tcfail131.hs:7:3)
- In the expression: f x x
- In an equation for ‘g’: g x = f x x
diff --git a/testsuite/tests/typecheck/should_fail/tcfail140.stderr b/testsuite/tests/typecheck/should_fail/tcfail140.stderr index 6908f1d595..09eb70c588 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail140.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail140.stderr @@ -1,30 +1,30 @@ tcfail140.hs:10:7: error:
Couldn't match expected type ‘Integer -> t’ with actual type ‘Int’
- Relevant bindings include bar :: t (bound at tcfail140.hs:10:1)
The function ‘f’ is applied to two arguments,
but its type ‘Int -> Int’ has only one
In the expression: f 3 9
In an equation for ‘bar’: bar = f 3 9
+ Relevant bindings include bar :: t (bound at tcfail140.hs:10:1)
tcfail140.hs:12:10: error:
Couldn't match expected type ‘Integer -> t1’ with actual type ‘Int’
- Relevant bindings include
- rot :: t -> t1 (bound at tcfail140.hs:12:1)
The operator ‘f’ takes two arguments,
but its type ‘Int -> Int’ has only one
In the expression: 3 `f` 4
In an equation for ‘rot’: rot xs = 3 `f` 4
+ Relevant bindings include
+ rot :: t -> t1 (bound at tcfail140.hs:12:1)
tcfail140.hs:14:15: error:
Couldn't match expected type ‘a -> b’ with actual type ‘Int’
- Relevant bindings include
- xs :: [a] (bound at tcfail140.hs:14:5)
- bot :: [a] -> [b] (bound at tcfail140.hs:14:1)
The operator ‘f’ takes two arguments,
but its type ‘Int -> Int’ has only one
In the first argument of ‘map’, namely ‘(3 `f`)’
In the expression: map (3 `f`) xs
+ Relevant bindings include
+ xs :: [a] (bound at tcfail140.hs:14:5)
+ bot :: [a] -> [b] (bound at tcfail140.hs:14:1)
tcfail140.hs:16:8: error:
The constructor ‘Just’ should have 1 argument, but has been given none
diff --git a/testsuite/tests/typecheck/should_fail/tcfail153.stderr b/testsuite/tests/typecheck/should_fail/tcfail153.stderr index aafe8a269a..ec46f782ad 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail153.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail153.stderr @@ -5,12 +5,12 @@ tcfail153.hs:6:7: the type signature for: f :: a -> [a] at tcfail153.hs:5:6
Expected type: [a]
Actual type: [Bool]
- Relevant bindings include
- x :: a (bound at tcfail153.hs:6:3)
- f :: a -> [a] (bound at tcfail153.hs:6:1)
In the expression: g x
In an equation for ‘f’:
f x
= g x
where
g y = if y then [] else [...]
+ Relevant bindings include
+ x :: a (bound at tcfail153.hs:6:3)
+ f :: a -> [a] (bound at tcfail153.hs:6:1)
diff --git a/testsuite/tests/typecheck/should_fail/tcfail174.stderr b/testsuite/tests/typecheck/should_fail/tcfail174.stderr index 42aa7a91fa..77bc7416b5 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail174.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail174.stderr @@ -13,10 +13,10 @@ tcfail174.hs:13:14: at tcfail174.hs:13:1-14
Expected type: Capture (forall x. x -> a)
Actual type: Capture (forall a. a -> a)
- Relevant bindings include
- h1 :: Capture a (bound at tcfail174.hs:13:1)
In the first argument of ‘Capture’, namely ‘g’
In the expression: Capture g
+ Relevant bindings include
+ h1 :: Capture a (bound at tcfail174.hs:13:1)
tcfail174.hs:16:14:
Couldn't match type ‘a’ with ‘b’
@@ -26,7 +26,7 @@ tcfail174.hs:16:14: the type signature for: h2 :: Capture b at tcfail174.hs:15:7
Expected type: Capture (forall x. x -> b)
Actual type: Capture (forall a. a -> a)
- Relevant bindings include
- h2 :: Capture b (bound at tcfail174.hs:16:1)
In the first argument of ‘Capture’, namely ‘g’
In the expression: Capture g
+ Relevant bindings include
+ h2 :: Capture b (bound at tcfail174.hs:16:1)
diff --git a/testsuite/tests/typecheck/should_fail/tcfail175.stderr b/testsuite/tests/typecheck/should_fail/tcfail175.stderr index 8689fd1a6c..50a2424fcc 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail175.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail175.stderr @@ -4,7 +4,7 @@ tcfail175.hs:11:1: with actual type ‘a’
‘a’ is a rigid type variable bound by
the type signature for: evalRHS :: Int -> a at tcfail175.hs:10:12
- Relevant bindings include
- evalRHS :: Int -> a (bound at tcfail175.hs:11:1)
The equation(s) for ‘evalRHS’ have three arguments,
but its type ‘Int -> a’ has only one
+ Relevant bindings include
+ evalRHS :: Int -> a (bound at tcfail175.hs:11:1)
diff --git a/testsuite/tests/typecheck/should_fail/tcfail178.stderr b/testsuite/tests/typecheck/should_fail/tcfail178.stderr index 7ed00156d6..472e133098 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail178.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail178.stderr @@ -3,12 +3,12 @@ tcfail178.hs:15:7: Couldn't match type ‘()’ with ‘[a]’ Expected type: Bool -> [a] Actual type: Bool -> () - Relevant bindings include c :: [a] (bound at tcfail178.hs:15:1) In the first argument of ‘a’, namely ‘y’ In the expression: a y + Relevant bindings include c :: [a] (bound at tcfail178.hs:15:1) tcfail178.hs:18:7: Couldn't match expected type ‘Bool -> [a]’ with actual type ‘()’ - Relevant bindings include d :: [a] (bound at tcfail178.hs:18:1) In the first argument of ‘a’, namely ‘()’ In the expression: a () + Relevant bindings include d :: [a] (bound at tcfail178.hs:18:1) diff --git a/testsuite/tests/typecheck/should_fail/tcfail179.stderr b/testsuite/tests/typecheck/should_fail/tcfail179.stderr index 51c66e138b..14d2eae435 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail179.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail179.stderr @@ -8,10 +8,10 @@ tcfail179.hs:14:39: at tcfail179.hs:14:14
‘s’ is a rigid type variable bound by
the type signature for: run :: T s -> Int at tcfail179.hs:12:8
+ In the first argument of ‘g’, namely ‘x’
+ In the expression: g x id
Relevant bindings include
x :: x (bound at tcfail179.hs:14:26)
g :: s -> (x -> s) -> (x, s, Int) (bound at tcfail179.hs:14:16)
ts :: T s (bound at tcfail179.hs:13:5)
run :: T s -> Int (bound at tcfail179.hs:13:1)
- In the first argument of ‘g’, namely ‘x’
- In the expression: g x id
diff --git a/testsuite/tests/typecheck/should_fail/tcfail182.stderr b/testsuite/tests/typecheck/should_fail/tcfail182.stderr index 159700512a..4103c3a0fa 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail182.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail182.stderr @@ -4,7 +4,7 @@ tcfail182.hs:9:3: error: with actual type ‘Maybe t0’ NB: ‘Maybe’ is defined at tcfail182.hs:6:1-18 ‘Prelude.Maybe’ is defined in ‘GHC.Base’ in package ‘base-4.9.0.0’ - Relevant bindings include - f :: Prelude.Maybe a -> Int (bound at tcfail182.hs:9:1) In the pattern: Foo In an equation for ‘f’: f Foo = 3 + Relevant bindings include + f :: Prelude.Maybe a -> Int (bound at tcfail182.hs:9:1) diff --git a/testsuite/tests/typecheck/should_fail/tcfail198.stderr b/testsuite/tests/typecheck/should_fail/tcfail198.stderr index ea764fc846..58cf260593 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail198.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail198.stderr @@ -5,9 +5,9 @@ tcfail198.hs:6:36: error: This (rigid, skolem) type variable is bound by
an expression type signature: a2
at tcfail198.hs:6:36-41
+ In the expression: x :: a
+ In the second argument of ‘(++)’, namely ‘[x :: a]’
Relevant bindings include
xs :: [a1] (bound at tcfail198.hs:6:21)
x :: a1 (bound at tcfail198.hs:6:19)
f3 :: [a1] -> [a1] (bound at tcfail198.hs:6:6)
- In the expression: x :: a
- In the second argument of ‘(++)’, namely ‘[x :: a]’
diff --git a/testsuite/tests/typecheck/should_fail/tcfail200.stderr b/testsuite/tests/typecheck/should_fail/tcfail200.stderr index e5bb82267e..7570047d0c 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail200.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail200.stderr @@ -4,8 +4,8 @@ tcfail200.hs:5:15: error: When matching types t1 :: * Int# :: # - Relevant bindings include - x :: (t1, Char) (bound at tcfail200.hs:5:9) In the expression: 1# In the expression: (1#, 'c') In an equation for ‘x’: x = (1#, 'c') + Relevant bindings include + x :: (t1, Char) (bound at tcfail200.hs:5:9) diff --git a/testsuite/tests/typecheck/should_fail/tcfail201.stderr b/testsuite/tests/typecheck/should_fail/tcfail201.stderr index 3e67742bc8..0609229ae8 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail201.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail201.stderr @@ -6,10 +6,10 @@ tcfail201.hs:17:58: error: gfoldl' :: (forall a1 b. c (a1 -> b) -> a1 -> c b) -> (forall g. g -> c g) -> a -> c a at tcfail201.hs:15:12 + In the first argument of ‘z’, namely ‘DocEmpty’ + In the expression: z DocEmpty Relevant bindings include hsDoc :: a (bound at tcfail201.hs:16:13) gfoldl' :: (forall a1 b. c (a1 -> b) -> a1 -> c b) -> (forall g. g -> c g) -> a -> c a (bound at tcfail201.hs:16:1) - In the first argument of ‘z’, namely ‘DocEmpty’ - In the expression: z DocEmpty diff --git a/testsuite/tests/typecheck/should_fail/tcfail206.stderr b/testsuite/tests/typecheck/should_fail/tcfail206.stderr index bd3d90df57..5090ee165f 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail206.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail206.stderr @@ -19,10 +19,10 @@ tcfail206.hs:11:5: the type signature for: c :: a -> (a, Bool) at tcfail206.hs:10:6
Expected type: a -> (a, Bool)
Actual type: a -> (a, a)
- Relevant bindings include
- c :: a -> (a, Bool) (bound at tcfail206.hs:11:1)
In the expression: (True || False,)
In an equation for ‘c’: c = (True || False,)
+ Relevant bindings include
+ c :: a -> (a, Bool) (bound at tcfail206.hs:11:1)
tcfail206.hs:14:5:
Couldn't match type ‘Bool’ with ‘Int’
@@ -45,7 +45,7 @@ tcfail206.hs:20:5: the type signature for: f :: a -> (# a, Bool #) at tcfail206.hs:19:6
Expected type: a -> (# a, Bool #)
Actual type: a -> (# a, a #)
- Relevant bindings include
- f :: a -> (# a, Bool #) (bound at tcfail206.hs:20:1)
In the expression: (# True || False, #)
In an equation for ‘f’: f = (# True || False, #)
+ Relevant bindings include
+ f :: a -> (# a, Bool #) (bound at tcfail206.hs:20:1)
diff --git a/testsuite/tests/typecheck/should_run/T10284.stdout b/testsuite/tests/typecheck/should_run/T10284.stdout index ea03ec8a1a..82f9518fc7 100644 --- a/testsuite/tests/typecheck/should_run/T10284.stdout +++ b/testsuite/tests/typecheck/should_run/T10284.stdout @@ -1,5 +1,5 @@ As expected, TypeError: T10284.hs:6:5: error: - Couldn't match expected type ‘Int’ with actual type ‘Char’ - In the expression: 'a' - In an equation for ‘a’: a = 'a' + • Couldn't match expected type ‘Int’ with actual type ‘Char’ + • In the expression: 'a' + In an equation for ‘a’: a = 'a' (deferred type error) diff --git a/testsuite/tests/typecheck/should_run/T7861.stderr b/testsuite/tests/typecheck/should_run/T7861.stderr index 8ed4be26ec..2f8ae153ba 100644 --- a/testsuite/tests/typecheck/should_run/T7861.stderr +++ b/testsuite/tests/typecheck/should_run/T7861.stderr @@ -6,8 +6,8 @@ T7861: T7861.hs:10:5: error: at T7861.hs:9:6 Expected type: (forall b. a) -> a Actual type: (forall b. a) -> [a] - Relevant bindings include - f :: (forall b. a) -> a (bound at T7861.hs:10:1) In the expression: doA In an equation for ‘f’: f = doA + Relevant bindings include + f :: (forall b. a) -> a (bound at T7861.hs:10:1) (deferred type error) diff --git a/testsuite/tests/typecheck/should_run/T9497a-run.stderr b/testsuite/tests/typecheck/should_run/T9497a-run.stderr index 43f720be7e..9a7ac000ec 100644 --- a/testsuite/tests/typecheck/should_run/T9497a-run.stderr +++ b/testsuite/tests/typecheck/should_run/T9497a-run.stderr @@ -1,8 +1,8 @@ T9497a-run: T9497a-run.hs:2:8: error: Found hole: _main :: IO () Or perhaps ‘_main’ is mis-spelled, or not in scope - Relevant bindings include - main :: IO () (bound at T9497a-run.hs:2:1) In the expression: _main In an equation for ‘main’: main = _main + Relevant bindings include + main :: IO () (bound at T9497a-run.hs:2:1) (deferred type error) diff --git a/testsuite/tests/typecheck/should_run/T9497b-run.stderr b/testsuite/tests/typecheck/should_run/T9497b-run.stderr index 02fda3473c..432b5fed2c 100644 --- a/testsuite/tests/typecheck/should_run/T9497b-run.stderr +++ b/testsuite/tests/typecheck/should_run/T9497b-run.stderr @@ -1,8 +1,8 @@ T9497b-run: T9497b-run.hs:2:8: error: Found hole: _main :: IO () Or perhaps ‘_main’ is mis-spelled, or not in scope - Relevant bindings include - main :: IO () (bound at T9497b-run.hs:2:1) In the expression: _main In an equation for ‘main’: main = _main + Relevant bindings include + main :: IO () (bound at T9497b-run.hs:2:1) (deferred type error) diff --git a/testsuite/tests/typecheck/should_run/T9497c-run.stderr b/testsuite/tests/typecheck/should_run/T9497c-run.stderr index 5fe0743d6c..61d8575d2c 100644 --- a/testsuite/tests/typecheck/should_run/T9497c-run.stderr +++ b/testsuite/tests/typecheck/should_run/T9497c-run.stderr @@ -1,8 +1,8 @@ T9497c-run: T9497c-run.hs:2:8: error: Found hole: _main :: IO () Or perhaps ‘_main’ is mis-spelled, or not in scope - Relevant bindings include - main :: IO () (bound at T9497c-run.hs:2:1) In the expression: _main In an equation for ‘main’: main = _main + Relevant bindings include + main :: IO () (bound at T9497c-run.hs:2:1) (deferred type error) diff --git a/testsuite/tests/typecheck/should_run/tcrun035.stderr b/testsuite/tests/typecheck/should_run/tcrun035.stderr index 2eed11d2f3..c72ef618ab 100644 --- a/testsuite/tests/typecheck/should_run/tcrun035.stderr +++ b/testsuite/tests/typecheck/should_run/tcrun035.stderr @@ -4,8 +4,8 @@ tcrun035.hs:13:7: with ‘forall (m :: * -> *). Monad m => m a’ Expected type: (forall (m :: * -> *). Monad m => m a) -> IO a Actual type: IO a -> IO a + In the expression: id . id + In an equation for ‘foo’: foo = id . id Relevant bindings include foo :: (forall (m :: * -> *). Monad m => m a) -> IO a (bound at tcrun035.hs:13:1) - In the expression: id . id - In an equation for ‘foo’: foo = id . id |