Make inplace and inplace' strict in the stream
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 7 Dec 2009 23:54:21 +0000 (23:54 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 7 Dec 2009 23:54:21 +0000 (23:54 +0000)
Data/Vector/Fusion/Stream.hs

index c20bb29..02f306a 100644 (file)
@@ -102,7 +102,7 @@ type MStream = M.Stream
 inplace :: (forall m. Monad m => M.Stream m a -> M.Stream m a)
         -> Stream a -> Stream a
 {-# INLINE_STREAM inplace #-}
-inplace f s = f s
+inplace f s = s `seq` f s
 
 {-# RULES
 
@@ -117,7 +117,7 @@ inplace f s = f s
 inplace' :: (forall m. Monad m => M.Stream m a -> M.Stream m b)
          -> Stream a -> Stream b
 {-# INLINE_STREAM inplace' #-}
-inplace' f s = f s
+inplace' f s = s `seq`f s
 
 -- FIXME: We'd like to have this
 {- RULES