<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi, Jeremy. Probably I didn't read your message carefully enough. Sorry for that.</div><div><br></div><div><div>In my case there's no recursive code sqrt calls nroot that calls Prelude.nroot and Prelude./. Does that qualify?&nbsp;</div></div><div><br></div><div>pavel</div><div><br></div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On 25.01.2011, at 22:35, Jeremy Shaw wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">There is a weird type-checking bug in 7.0.1 that causes loopy behavior:<div><br></div><div><a href="http://hackage.haskell.org/trac/ghc/ticket/4809">http://hackage.haskell.org/trac/ghc/ticket/4809</a></div><div><br></div><div>Not sure if that is what is happening to you or not. Though in my experience it did not actually print &lt;&lt;loop&gt;&gt;, it just hung.</div></div></blockquote></div></div></blockquote></div></div></blockquote></div><div><br><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>My understanding of the bug is that the type-checker failed to properly detect and handle super classes in recursive dictionaries. As a result the dictionaries call each other in a loop and nothing ever happens..</div></div></blockquote><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>You mentioned that the 'let' trick sometimes fixed things. In the code I had trouble with, subtle changes would make the code magically start working. For example, changing *unused* functions in 'where' clauses would cause code to suddenly start working :)&nbsp;</div></div></blockquote><div><br></div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Anyway, since you are certain your issue is not related, you can just ignore my message.&nbsp;</div></div></blockquote><div><br></div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>- jeremy</div><br><div><div>On Jan 25, 2011, at 1:43 PM, Pavel Perikov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">It is NOT type checking bug. It causes Rec {} in core and _|_ in runtime :)<br><div><div><br></div></div></div></blockquote></div><br></div></blockquote></div><br></body></html>