[GHC] #10749: Boot file instances should imply superclasses
GHC
ghc-devs at haskell.org
Fri Aug 7 05:38:39 UTC 2015
#10749: Boot file instances should imply superclasses
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner: ezyang
Type: bug | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.11
Keywords: backpack | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Revisions: |
-------------------------------------+-------------------------------------
Currently, if I write the following program:
{{{
-- A.hs-boot
module A where
data T
instance Ord T
-- B.hs
module B where
import {-# SOURCE #-} A
f :: T -> T -> Bool
f x y = x == y
}}}
I get:
{{{
B.hs:4:11:
No instance for (Eq T) arising from a use of `=='
Possible fix: add an instance declaration for (Eq T)
In the expression: x == y
In an equation for `f': f x y = x == y
}}}
This is a bit confusing, because Ord instances are supposed to imply Eq
instances.
GHC should either:
1. Reject A.hs-boot (claiming that it could not find evidence that T had
an Eq instance), or
2. Accept B.hs, since the instance requirement for Ord should imply Eq.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10749>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list