Bug: GHC hangs rather than reporting an occurs check error
Bryan Donlan
bdonlan at gmail.com
Thu Mar 20 02:38:56 EDT 2008
Hi all,
I've found a case where GHC will hang (consuming more and more memory)
when it should report an occurs check error. The test case is at
http://fushizen.net/~bd/kaos-ghc.loop.tgz - the error in question is
that the arguments in the StateT instance for HOLift are reversed like
so:
diff --git a/src/Kaos/KaosM.hs b/src/Kaos/KaosM.hs
index ec4e69a..268250a 100644
--- a/src/Kaos/KaosM.hs
+++ b/src/Kaos/KaosM.hs
@@ -88,7 +88,7 @@ genlift' unbox box f m = box $ \s -> f (unbox m s)
class HOLift m b | m -> b where
genlift :: (forall r'. b r' -> b r') -> (forall r. m r -> m r)
-instance HOLift m (StateT s m) where
+instance HOLift (StateT s m) m where
genlift = genlift' runStateT StateT
instance (HOLift m b, KaosDiagM r b) => KaosDiagM r m where
Thanks,
Bryan Donlan
More information about the Glasgow-haskell-users
mailing list