
#8599: Deriving in associated data families ------------------------------------+------------------------------------- Reporter: mojojojo | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Keywords: | Operating System: Unknown/Multiple Architecture: Unknown/Multiple | Type of failure: None/Unknown Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ------------------------------------+------------------------------------- This code {{{ class Class a where data DF a data family DF' a instance (Eq (DF' a)) => Class a where newtype DF a = DF (DF' a) deriving (Eq) }}} fails with {{{ No instance for (Eq (DF' a)) arising from the 'deriving' clause of a data type declaration Possible fix: add an instance declaration for (Eq (DF' a)) or use a standalone 'deriving instance' declaration, so you can specify the instance context yourself When deriving the instance for (Eq (DF a)) }}} The following way it compiles fine, however {{{ class Class a where data DF a data family DF' a instance Class a where newtype DF a = DF (DF' a) deriving instance (Eq (DF' a)) => Eq (DF a) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8599 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler