[fix a few minor bugs in libraries found by better error reporting
John Meacham <john@repetae.net>**20100806045809
 Ignore-this: e7d43927c9e11b05de455a5d0ebd1017
] hunk ./lib/base/Control/Monad.hs 131
+void :: Monad m => m a -> m ()
+void x = x >> return ()
hunk ./lib/flat-foreign/MarshalError.hs 3
-	IOErrorType,
-	mkIOError,
-	alreadyExistsErrorType,
-	doesNotExistErrorType,
-	alreadyInUseErrorType,
-	fullErrorType,
-	eofErrorType,
-	illegalOperationErrorType,
-	permissionErrorType,
-	userErrorType,
-	annotateIOError
+--	IOErrorType,
+--	mkIOError,
+--	alreadyExistsErrorType,
+--	doesNotExistErrorType,
+--	alreadyInUseErrorType,
+--	fullErrorType,
+--	eofErrorType,
+--	illegalOperationErrorType,
+--	permissionErrorType,
+--	userErrorType,
+--	annotateIOError
hunk ./lib/jhc/Prelude.hs 300
---sum              =  foldl (+) 0
---product          =  foldl (*) 1
-sum l	= sum' l 0 where
-    sum' []     a = a
-    sum' (x:xs) a = sum' xs (a+x)
-product	l = prod l 1 where
-    prod []     a = a
-    prod (x:xs) a = prod xs (a*x)
-
hunk ./lib/jhc/Prelude.hs 306
+{-# SPECIALIZE sum' :: [Double] -> Double #-}
+{-# RULES "sum/Double" forall . sum = sum' :: [Double] -> Double #-}
hunk ./lib/jhc/Prelude.hs 388
+