
#10598: DeriveAnyClass and GND don't work well together -------------------------------------+------------------------------------- Reporter: osa1 | Owner: RyanGlScott Type: bug | Status: patch 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): Phab:D2280 Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Thus far, I have received a vote in favor of the option presented in comment:37 from Simon (and Matthew Pickering on #ghc). Since no one has objected to it, I think I'll proceed forward with it. I'd like to make one critique of my own proposal, though: I don't really like the use of the `default` keyword to signify `DeriveAnyClass`, especially since `default` could very easily be mistaken for what `builtin` is supposed to signify. I'd much rather use the word `anyclass`, as inspired by a [https://mail.haskell.org/pipermail/ghc-devs/2016-February/011267.html ghc-devs post] by kosmikus. Also, to ensure that users can't write something like {{{#!hs newtype Foo = Foo Bar deriving (A, B, C) deriving (D, E, F) deriving (G, H, I) deriving (J, K, L) }}} in regular Haskell, we'd need to guard the use of multiple `deriving` clauses for one datatype behind a language extension. I propose just making that language extension also be `DerivingStrategies`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10598#comment:39 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler