#6117: Cyclic Type Class Hierarchy Produces <<loop>>
-----------------------------------------+----------------------------------
Reporter: jun0 | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.4.1 | Keywords:
Os: Linux | Architecture: Unknown/Multiple
Failure: Incorrect result at runtime | Testcase:
Blockedby: | Blocking:
Related: |
-----------------------------------------+----------------------------------
If there is a cyclic class hierarchy like
class B a => Semigroup a where ...[[BR]]
class Semigroup (Additive a) => Ring a where ...[[BR]]
instance Ring a => Semigroup (Additive a) where ...[[BR]]
then uses of B's methods on (Additive a) in the method implementations of
the
third declaration "instance Ring a => Semigroup (Additive a)" will:
1. be accepted by the compiler even in cases where B (Additive a) is
not
derivable.
2. result in <<loop>>.
The attached program prints <<loop>> when compiled with GHC-7.2.1 or newer
but prints 1234567890 when compiled with GHC-7.0.4 or older. I haven't
had time to try out any revisions in between those two, but I did check
that HEAD produces <<loop>> as well.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6117>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs