[GHC] #9563: Support for deriving Generic1 for data families
GHC
ghc-devs at haskell.org
Sun Sep 7 09:54:50 UTC 2014
#9563: Support for deriving Generic1 for data families
-------------------------------------+-------------------------------------
Reporter: mnislaih | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.2
Keywords: | Operating System: MacOS X
Architecture: Unknown/Multiple | Type of failure: GHC
Difficulty: Unknown | rejects valid program
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
The following code:
{{{#!hs
import GHC.Generics
data family F typ :: * -> *
data A
data instance F A a = AData a deriving Generic1
}}}
produces an error when run with ghc 7.8.2 or 7.8.3:
{{{
Couldn't match type ‘Rep1 (F A)’
with ‘M1 t0 t1 (M1 t2 t3 (M1 t4 t5 Par1))’
The type variables ‘t0’, ‘t1’, ‘t2’, ‘t3’, ‘t4’, ‘t5’ are ambiguous
Expected type: Rep1 (F A) a
Actual type: M1 t0 t1 (M1 t2 t3 (M1 t4 t5 Par1)) a
In the pattern: M1 (M1 (M1 g1))
In an equation for ‘to1’: to1 (M1 (M1 (M1 g1))) = AData (unPar1 g1)
In the instance declaration for ‘Generic1 (F A)’
}}}
whereas ghc 7.6.3 simply refuses to go ahead with the message:
{{{
generic1.hs:14:40:
Derived instance `Generic1 (F A)'
requires illegal partial application of data type family F
In the data instance declaration for `F'
}}}
Either a check has gone missing in 7.8.x, or a bug has crept up in the
Generic1 support. I have gone through past tickets and
https://ghc.haskell.org/trac/ghc/ticket/5936 suggests that it is the
latter.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9563>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list