@@ -992,7 +992,7 @@ data FIterState s f m a b
992992
993993{-# INLINE_NORMAL foldIterateM #-}
994994foldIterateM ::
995− Monad m => (b -> m (FL.Fold m a b)) -> b -> Stream m a -> Stream m b
995+ Monad m => (b -> m (FL.Fold m a b)) -> m b -> Stream m a -> Stream m b
996996foldIterateM func seed0 (Stream step state) =
997997 Stream stepOuter (FIterInit state seed0)
998998
@@ -1005,11 +1005,11 @@ foldIterateM func seed0 (Stream step state) =
10051005 $ Skip
10061006 $ case res of
10071007 FL.Partial fs -> FIterStream st fstep fs extract
1008− FL.Done fb -> FIterYield fb $ FIterInit st fb
1008+ FL.Done fb -> FIterYield fb $ FIterInit st (return fb)
10091009
10101010 {-# INLINE_LATE stepOuter #-}
10111011 stepOuter _ (FIterInit st seed) = do
1012− (FL.Fold fstep initial extract) <- func seed
1012+ (FL.Fold fstep initial extract) <- seed >>= func
10131013 iterStep initial st fstep extract
10141014 stepOuter gst (FIterStream st fstep fs extract) = do
10151015 r <- step (adaptState gst) st