use seq# as the implementation of evaluate (see #5129)
authorSimon Marlow <marlowsd@gmail.com>
Wed, 29 Jun 2011 10:52:30 +0000 (11:52 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 29 Jun 2011 13:24:04 +0000 (14:24 +0100)
GHC/IO.hs

index 99dc093..6cdbacc 100644 (file)
--- a/GHC/IO.hs
+++ b/GHC/IO.hs
@@ -469,4 +469,4 @@ a `finally` sequel =
 -- >   evaluate x = (return $! x) >>= return
 --
 evaluate :: a -> IO a
-evaluate a = IO $ \s -> let !va = a in (# s, va #) -- NB. see #2273
+evaluate a = IO $ \s -> seq# a s -- NB. see #2273, #5129