#5913: Type class dictionary call loops at runtime
------------------------------+---------------------------------------------
Reporter: mnislaih | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.4.1 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: Runtime crash | Testcase:
Blockedby: | Blocking:
Related: |
------------------------------+---------------------------------------------
The following code works fine in 7.0.3 but fails with <loop> in 7.2.x and
7.4.1 :
{{{
{-# LANGUAGE UndecidableInstances #-}
class L0 a where l0 :: a -> a
class L0 a => L1 a where l1 :: a -> a
class L1 a => L2 a where l2 :: a -> a
data Worksfine = Worksfine deriving Show
instance L0 Worksfine where l0 = id
instance L1 Worksfine where l1 = l2
instance {- undecidable -} L1 Worksfine => L2 Worksfine where l2 = l0
data WorksfineToo = WorksfineToo deriving Show
instance L0 WorksfineToo where l0 =
id
instance {- undecidable -} L2 WorksfineToo => L1 WorksfineToo where l1 =
l2
instance {- undecidable -} L1 WorksfineToo => L2 WorksfineToo where l2 =
id
-- l1 LoopsAtRuntime = <loop>
-- l2 LoopsAtRuntime = <loop>
data LoopsAtRuntime = LoopsAtRuntime deriving Show
instance L0 LoopsAtRuntime where l0
= id
instance {- undecidable -} L2 LoopsAtRuntime => L1 LoopsAtRuntime where l1
= l2
instance {- undecidable -} L1 LoopsAtRuntime => L2 LoopsAtRuntime where l2
= l0
main = do
print (l1 WorksfineToo)
print (l2 WorksfineToo)
print (l1 LoopsAtRuntime)
print (l2 LoopsAtRuntime)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5913>
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