<html><body 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><br></div><div>- jeremy</div><div><br><div><div>On Jan 25, 2011, at 10:48 AM, Pavel Perikov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On 25.01.2011, at 18:37, Bjorn Buckwalter wrote:<br><blockquote type="cite"> (I<br></blockquote><blockquote type="cite">suspect the type inferencer is looping), but maybe you've figured out<br></blockquote><blockquote type="cite">something workable for you already.<br></blockquote><br>I told you I'm exhausted right now, didn't I? :) This is definitely not type inferencer. The bug causes compiled program looping. And I have at least one case when let-trick fixes the behavior in compiled program.<br><br>Pavel.<br><br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks,<br></blockquote><blockquote type="cite">Bjorn<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">(Sorry for the re-repost, Pavel, my incompetence is matched only by my<br></blockquote><blockquote type="cite">perseverance.)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Tue, Jan 25, 2011 at 22:02, Pavel Perikov &lt;<a href="mailto:perikov@gmail.com">perikov@gmail.com</a>&gt; wrote:<br></blockquote><blockquote type="cite"><blockquote type="cite">in ghci:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude&gt; import Numeric.Units.Dimensional.Prelude as D<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude Numeric.Units.Dimensional.Prelude&gt; D.sqrt $ let s = 9 *~ (meter D.*<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">meter) in s<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">3.0 m<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude Numeric.Units.Dimensional.Prelude&gt; D.sqrt $ 9 *~ (meter D.* meter)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghci hangs.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">complied and optimized code detects &lt;&lt;loop&gt;&gt; and let-trick from the above<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">does not help.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Here's the complete ghci -v session which contains all package versions<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghci -v<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">GHCi, version 7.0.1: <a href="http://www.haskell.org/ghc/">http://www.haskell.org/ghc/</a> &nbsp;:? for help<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Glasgow Haskell Compiler, Version 7.0.1, for Haskell 98, stage 2 booted by<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">GHC version 6.12.3<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Using binary package database:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">/Library/Frameworks/GHC.framework/Versions/7.0.1-i386/usr/lib/ghc-7.0.1/package.conf.d/package.cache<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Using binary package database:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">/Users/pavel/.ghc/i386-darwin-7.0.1/package.conf.d/package.cache<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Hsc static flags: -static<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package ghc-prim ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package integer-gmp ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package base ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package ffi-1.0 ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude&gt; import Numeric.Units.Dimensional.Prelude as D<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Parser:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude Numeric.Units.Dimensional.Prelude&gt; D.sqrt $ let s = 9 *~ (meter D.*<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">meter) in s<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Parser:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Desugar:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Simplify:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** CorePrep:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** ByteCodeGen:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package old-locale-1.0.0.2 ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package time-1.2.0.3 ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package numtype-1.0 ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Loading package dimensional-0.8.0.1 ... linking ... done.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">3.0 m<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Prelude Numeric.Units.Dimensional.Prelude&gt; D.sqrt $ 9 *~ (meter D.* meter)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package containers-0.3.0.0 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">containers-0.4.0.0<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">hiding package QuickCheck-2.3.0.2 to avoid conflict with later version<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">QuickCheck-2.4.0.1<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package ghc-prim mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ghc-prim-0.2.0.0-0713122c5f9038c6f0355a37e294e054<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package integer-gmp mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">integer-gmp-0.2.0.2-bfb191b8468e4d812a2bb92622cb246e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package base mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">base-4.3.0.0-1ea085b64a078bd9d5eaa9d8d525e35e<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package rts mapped to builtin_rts<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package template-haskell mapped to<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">template-haskell-2.5.0.0-f262af1f92a427f5cf4133bff041044f<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-seq not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">wired-in package dph-par not found.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Parser:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Desugar:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** Simplify:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** CorePrep:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">*** ByteCodeGen:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">HANG!<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><br><br>_______________________________________________<br>Glasgow-haskell-users mailing list<br><a href="mailto:Glasgow-haskell-users@haskell.org">Glasgow-haskell-users@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/glasgow-haskell-users<br></div></blockquote></div><br></div></body></html>