diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-03-04 11:59:47 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-03-04 12:00:21 +0000 |
commit | f66e0e695b0377c469fbe877d4850fc0ebca2010 (patch) | |
tree | f20d6e81e1d79e3e1d6e6cff923203e460f73d96 /testsuite/tests/polykinds/T8566.stderr | |
parent | d058bc9ce04e8397c8fd0a32a8654b83f3ef4af1 (diff) | |
download | haskell-f66e0e695b0377c469fbe877d4850fc0ebca2010.tar.gz |
A raft of small changes associated with -XConstrainedClassMethods
See Trac #7854. Specifically:
* Major clean up and simplification of check_op in checkValidClass;
specifically
- use checkValidType on the entire method-selector type to detect
ambiguity
- put a specific test for -XConstrainedClassMethods
* Make -XConstrainedClassMethods be implied by -XMultiParamTypeClasses
(a bit ad-hoc but see #7854), and document in the user manual.
* Do the checkAmbiguity test just once in TcValidity.checkValidType,
rather than repeatedly at every level. See Note [When to call checkAmbiguity]
* Add -XAllowAmbiguousTypes in GHC.IP, since 'ip' really is ambiguous.
(It's a rather magic function.)
* Improve location info for check_op in checkValidClass
* Update quite a few tests, which had genuinely-ambiguous class
method signatures. Some I fixed by making them unambiguous; some
by adding -XAllowAmbiguousTypes
Diffstat (limited to 'testsuite/tests/polykinds/T8566.stderr')
-rw-r--r-- | testsuite/tests/polykinds/T8566.stderr | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/testsuite/tests/polykinds/T8566.stderr b/testsuite/tests/polykinds/T8566.stderr index 096f058791..168e890404 100644 --- a/testsuite/tests/polykinds/T8566.stderr +++ b/testsuite/tests/polykinds/T8566.stderr @@ -1,19 +1,19 @@ - -T8566.hs:31:9: - Could not deduce (C ('AA (t (I a ps)) as) ps fs0) - arising from a use of ‘c’ - from the context: C ('AA (t (I a ps)) as) ps fs - bound by the instance declaration at T8566.hs:29:10-67 - or from: 'AA t (a : as) ~ 'AA t1 as1 - bound by a pattern with constructor: - A :: forall (r :: [*]) (k :: BOX) (t :: k) (as :: [U *]). - I ('AA t as) r, - in an equation for ‘c’ - at T8566.hs:31:5 - The type variable ‘fs0’ is ambiguous - Relevant bindings include - c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps - (bound at T8566.hs:31:3) - In the expression: c undefined - In an equation for ‘c’: c A = c undefined - In the instance declaration for ‘C ('AA t (a : as)) ps fs’ +
+T8566.hs:32:9:
+ Could not deduce (C ('AA (t (I a ps)) as) ps fs0)
+ arising from a use of ‘c’
+ from the context: C ('AA (t (I a ps)) as) ps fs
+ bound by the instance declaration at T8566.hs:30:10-67
+ or from: 'AA t (a : as) ~ 'AA t1 as1
+ bound by a pattern with constructor:
+ A :: forall (r :: [*]) (k :: BOX) (t :: k) (as :: [U *]).
+ I ('AA t as) r,
+ in an equation for ‘c’
+ at T8566.hs:32:5
+ The type variable ‘fs0’ is ambiguous
+ Relevant bindings include
+ c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps
+ (bound at T8566.hs:32:3)
+ In the expression: c undefined
+ In an equation for ‘c’: c A = c undefined
+ In the instance declaration for ‘C ('AA t (a : as)) ps fs’
|