#1797: type equality test leads to a looping type checker
-----------------------+----------------------------------------------------
Reporter: guest | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.8
Severity: normal | Keywords:
Difficulty: Unknown | Os: Unknown
Testcase: | Architecture: x86
-----------------------+----------------------------------------------------
The following code (similar to one of HList’s generic type equality tests)
causes GHC to loop forever (or at least very long) with GHC 6.8.0.20071020
on i386-unknown-mingw32 and GHC 6.8.0.20071019 on i386-unknown-linux:
{{{
{-# LANGUAGE
MultiParamTypeClasses,
FunctionalDependencies,
UndecidableInstances,
OverlappingInstances,
FlexibleInstances,
EmptyDataDecls #-}
data True
data False
class TypeEq type1 type2 result | type1 type2 -> result where
typeEq :: type1 -> type2 -> result
instance TypeEq soleType soleType True where
typeEq _ _ = undefined
instance (TypeCast False result) => TypeEq type1 type2 result where
typeEq _ _ = undefined
class TypeCast type1 type2 | type1 -> type2, type2 -> type1
instance TypeCast soleType soleType
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1797>
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