"David Sabel" <[EMAIL PROTECTED]> writes:

> {-# NOINLINE b #-}
> 
> b x  = if even x then unsafePerformIO getChar else bot
> 
> bot = bot
> 
> main = do
>          putChar (b 4)
>          putChar (b 6)

I am not a compiler implementer (or lawyer, for that matter :)
But I propose this guess.  First, both even 4 and even 6 get
constant-folded to True; so b 4 and b 6 both become unsafePerformIO
getChar.  Then there is a common subexpression elimination.
_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to