13 May
2002
13 May
'02
1:57 p.m.
Thanks for a fine report - turned out to be a code generation bug that has now been fixed. --sigbjorn ----- Original Message ----- From: "Edmund GRIMLEY EVANS" <Edmund.Grimley-Evans@arm.com> To: <hugs-bugs@haskell.org> Sent: Wednesday, May 01, 2002 12:34 Subject: "dodo" bug
The following program prints 16843011 when I run it (version December 2001 of Hugs, compiled with gcc-3.0 or gcc-2.95.1).
Replace "else x" by "else True" to get the expected result.
Can you reproduce this, or is my system broken?
Edmund
jj [] = 0 jj (x:xs) = x + (jj xs) * 256
dodo :: Int dodo = jj (map f [0..3]) where
f k = y where
y = case True of _ -> (if (if True then True else x) then id else id) 0
x = True
main = print dodo