diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-09-02 14:05:36 +0200 |
---|---|---|
committer | Ben Gamari <bgamari.foss@gmail.com> | 2015-09-02 09:11:51 -0400 |
commit | 28ac9d31bcabeb44496c0e1750563f3091c62da9 (patch) | |
tree | 427a29e1beca0ee3fee7a1bc825bb5fa2fa03dae /testsuite/tests/typecheck/should_fail/T5095.stderr | |
parent | c8f623e305ec0a51ac2406a1f754d244e05b96f5 (diff) | |
download | haskell-28ac9d31bcabeb44496c0e1750563f3091c62da9.tar.gz |
Improve the error messages for class instance errors
Summary: See Note [Displaying potential instances].
Reviewers: austin
Subscribers: KaneTW, thomie
Differential Revision: https://phabricator.haskell.org/D1176
Diffstat (limited to 'testsuite/tests/typecheck/should_fail/T5095.stderr')
-rw-r--r-- | testsuite/tests/typecheck/should_fail/T5095.stderr | 78 |
1 files changed, 5 insertions, 73 deletions
diff --git a/testsuite/tests/typecheck/should_fail/T5095.stderr b/testsuite/tests/typecheck/should_fail/T5095.stderr index 0cf88546a0..46667fb8f4 100644 --- a/testsuite/tests/typecheck/should_fail/T5095.stderr +++ b/testsuite/tests/typecheck/should_fail/T5095.stderr @@ -1,82 +1,14 @@ -T5095.hs:9:11: +T5095.hs:9:11: error: Overlapping instances for Eq a arising from a use of ‘==’ Matching instances: instance [overlappable] Show a => Eq a -- Defined at T5095.hs:5:31 - instance Eq a => Eq (Maybe a) -- Defined in ‘GHC.Base’ - instance Eq () -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b) => Eq (a, b) -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c) => Eq (a, b, c) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => - Eq (a, b, c, d, e, f) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => - Eq (a, b, c, d, e, f, g) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => - Eq (a, b, c, d, e, f, g, h) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => - Eq (a, b, c, d, e, f, g, h, i) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j) => - Eq (a, b, c, d, e, f, g, h, i, j) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j, Eq k) => - Eq (a, b, c, d, e, f, g, h, i, j, k) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j, Eq k, Eq l) => - Eq (a, b, c, d, e, f, g, h, i, j, k, l) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j, Eq k, Eq l, Eq m) => - Eq (a, b, c, d, e, f, g, h, i, j, k, l, m) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j, Eq k, Eq l, Eq m, Eq n) => - Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n) - -- Defined in ‘GHC.Classes’ - instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, - Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => - Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) - -- Defined in ‘GHC.Classes’ - instance Eq Bool -- Defined in ‘GHC.Classes’ - instance Eq Char -- Defined in ‘GHC.Classes’ - instance Eq Double -- Defined in ‘GHC.Classes’ - instance Eq Float -- Defined in ‘GHC.Classes’ - instance Eq Int -- Defined in ‘GHC.Classes’ - instance Eq Ordering -- Defined in ‘GHC.Classes’ - instance Eq Word -- Defined in ‘GHC.Classes’ - instance Eq a => Eq [a] -- Defined in ‘GHC.Classes’ - instance Eq integer-gmp-1.0.0.0:GHC.Integer.Type.BigNat - -- Defined in ‘integer-gmp-1.0.0.0:GHC.Integer.Type’ - instance Eq Integer - -- Defined in ‘integer-gmp-1.0.0.0:GHC.Integer.Type’ - instance Eq All -- Defined in ‘Data.Monoid’ - instance forall (k :: BOX) (f :: k -> *) (a :: k). - Eq (f a) => - Eq (Alt f a) - -- Defined in ‘Data.Monoid’ - instance Eq Any -- Defined in ‘Data.Monoid’ - instance Eq a => Eq (Dual a) -- Defined in ‘Data.Monoid’ - instance Eq a => Eq (First a) -- Defined in ‘Data.Monoid’ - instance Eq a => Eq (Last a) -- Defined in ‘Data.Monoid’ - instance Eq a => Eq (Product a) -- Defined in ‘Data.Monoid’ - instance Eq a => Eq (Sum a) -- Defined in ‘Data.Monoid’ - instance forall (k :: BOX) (s :: k). Eq (Proxy s) - -- Defined in ‘Data.Proxy’ instance (Eq a, Eq b) => Eq (Either a b) -- Defined in ‘Data.Either’ - instance (Ix i, Eq e) => Eq (Array i e) -- Defined in ‘GHC.Arr’ - instance Eq (STArray s i e) -- Defined in ‘GHC.Arr’ + instance Eq All -- Defined in ‘Data.Monoid’ + ...plus 35 others + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) (The choice depends on the instantiation of ‘a’ To pick the first instance above, use IncoherentInstances when compiling the other instance declarations) |