
#16114: strange "instance .. => .. => .. where ..." -------------------------------------+------------------------------------- Reporter: j.waldmann | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: 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): Some history on this ticket: you committed 1c062b794bf71a329f65813ce7b72fe2bd3935f0 after I complained (in https://phabricator.haskell.org/D4383#122346) that `rnLHsInstType` was overly complicated due to the previous validity checking. You responded (in https://phabricator.haskell.org/D4383#122347) that it was safe to remove this validity check from `rnLHsInstType` altogether, as `checkValidInstance` apparently performs the same check. I'm not sure if that was true at one point in time, but it certainly doesn't appear to be true as of GHC 8.6. As you say, we could certainly put the check back into `rnLHsInstType`. But to be honest, that might cause an overall regression in error message quality, judging from the changes to error messages (generally for the better) in commit 1c062b794bf71a329f65813ce7b72fe2bd3935f0. Another option would be to re-investigate `checkValidInstance`, confirm whether or not it checks for instances of the form `Eq a => Eq a => Eq (T a)`, and if not, add a check for it and see if it fires before we get this `Class ‘Eq’ does not have a method ‘==’` nonsense. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16114#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler