
#12768: 8.0.2 derives invalid code when class method is constrained by itself -------------------------------------+------------------------------------- Reporter: jophish | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.0.2 Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * cc: bgamari (added) Comment: That's a very good point about `D [a]` and `D (N a)` not being inter- coercible in general w.r.t the class `C`. It sound like in order to make this work for the special case of `D = C`, we'd have to equip GHC with some special knowledge that the `C (N a)` instance was generated through GND, which sounds quite gross. So now the question becomes: should we avoid backporting 96d451450923a80b043b5314c5eaaa9d0eab7c56 to 8.0.2 since it causes some programs which compile in 8.0.1 to fail in 8.0.2? Or should we simply add a section to the release notes explaining the scenario, and recommend the (admittedly simple) workaround? Ben, do you have any thoughts on this? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12768#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler