[project @ 2005-10-05 14:04:28 by simonmar]
authorsimonmar <unknown>
Wed, 5 Oct 2005 14:04:28 +0000 (14:04 +0000)
committersimonmar <unknown>
Wed, 5 Oct 2005 14:04:28 +0000 (14:04 +0000)
hPutChar should (probably) not be strict in its Char argument

GHC/IO.hs

index d8dbbb9..ca5a23e 100644 (file)
--- a/GHC/IO.hs
+++ b/GHC/IO.hs
@@ -401,8 +401,8 @@ unpackAcc buf (I# r) (I# len) acc = IO $ \s -> unpack acc (len -# 1#) s
 --  * 'isPermissionError' if another system resource limit would be exceeded.
 
 hPutChar :: Handle -> Char -> IO ()
-hPutChar handle c = 
-    c `seq` do   -- must evaluate c before grabbing the handle lock
+hPutChar handle c = do
+    c `seq` return ()
     wantWritableHandle "hPutChar" handle $ \ handle_  -> do
     let fd = haFD handle_
     case haBufferMode handle_ of