[GHC] #10598: DeriveAnyClass and GND don't work well together
GHC
ghc-devs at haskell.org
Sun May 22 23:37:51 UTC 2016
#10598: DeriveAnyClass and GND don't work well together
-------------------------------------+-------------------------------------
Reporter: osa1 | Owner: RyanGlScott
Type: bug | Status: new
Priority: normal | Milestone: 8.2.1
Component: Compiler | Version: 7.11
Resolution: | Keywords: Generics
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by RyanGlScott):
> That magic somewhat disturbs me, especially since it means a type
synonym is not equivalent to its expansion.
I'm not proposing making these type synonyms expand to something different
than what they're defined as above. The only magic comes when it's used in
a `deriving` statement—that would cause its underlying (expanded) type to
have a different derived //instance//, but the types are honest.
> But if you think it's better than (backwards-compatibly) extending the
parser to reuse keywords... (I guess `default` is a bit of a stretch
anyway.)
It's not quite backwards-compatible—we'd also have to make a breaking
change to `template-haskell` in order to accommodate the presence of these
new pragmas. The type synonym approach, however, is only backportable to
GHC 7.6.
(It should be noted that many uses of this feature would not be usable on
older GHCs in the first place, so perhaps this isn't a huge concern.)
> In any case, you should also decide how to annotate a `class`
definition, which is where I actually suggested a pragma.
I'm not sure what you mean. Are talking about annotating when you should
use `DeriveAnyClass` (`DAC`)? Or something else?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10598#comment:25>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list