
#9415: Superclass cycle with ambiguous type causes loop -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.9 Keywords: | Operating System: Architecture: Unknown/Multiple | Unknown/Multiple Difficulty: Unknown | Type of failure: Blocked By: | None/Unknown Related Tickets: | Test Case: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- If I say {{{ class D a => C a where meth :: D a => () class C a => D a }}} I get a loop in the typechecker. I know what's going on here: the error for the superclass cycle is added during the validity check, but then we go on to do ambiguity checks. Unfortunately, the ambiguity check never finishes. We just need to bail when there are superclass errors before doing the ambiguity check. Patch on the way. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9415 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler