"deriving" seems to ignore class context for a type family
|Reported by:||jkff||Owned by:||simonpj|
|Component:||Compiler (Type checker)||Version:||7.0.2|
|Keywords:||type families, datatype contexts, type classes, deriving||Cc:|
|Type of failure:||GHC rejects valid program||Test Case:|
|Related Tickets:||Differential Rev(s):|
class Foo a where data Bar a :: * class (Show (Bar a)) => Qux a data (Qux a) => Xyzzy a = Xyzzy (Bar a) deriving Show
Here I get the following error:
No instance for (Show (Bar a)) arising from the 'deriving' clause of a data type declaration Possible fix: add an instance declaration for (Show (Bar a)) or use a standalone 'deriving instance' declaration, so you can specify the instance context yourself When deriving the instance for (Show (Xyzzy a))
Curiously, I get the same error even if I add ", Show (Bar a)" to the context of "Xyzzy".
Change History (2)
Note: See TracTickets for help on using tickets.