
#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 oerjan): This may be off topic, but: Before the whole `OVERLAPPABLE` etc. stuff got included, I had somehow got the impression that pragmas were supposed to follow two simple principles, that improved portability between different compilers: * If a compiler does not understand a pragma other than a `LANGUAGE` pragma, it can safely ignore it, and if the program still compiles, its semantics must be the same. * If a compiler does not understand a `LANGUAGE` pragma, it should bail out with an error. The Haskell 2010 report seems to recommend this behavior, although it doesn't quite seem to require it. At some point things started to look inconsistent, so in a vain attempt to keep making sense of it I thought of an additional principle for added flexibility: * A `LANGUAGE` pragma might imply the existence of other pragmas, which must then also be understood. However, the `OVERLAPPABLE` etc. pragmas aren't as far as I know governed by any particular `LANGUAGE` pragma. Perhaps they still follow the first principle, I suspect there may be corner cases. Notably, I think the current Phab:D2280 implementation ''does'' obey the last principle. Any use of `DAC` or `GND` requires a corresponding language pragma, and `Builtin` never changes semantics. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10598#comment:35 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler