@@ -992,7 +992,7 @@ data FIterState s f m a b
993{-# INLINE_NORMAL foldIterateM #-}
993{-# INLINE_NORMAL foldIterateM #-}
994foldIterateM ::
994foldIterateM ::
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
996foldIterateM func seed0 (Stream step state) =
996foldIterateM func seed0 (Stream step state) =
997 Stream stepOuter (FIterInit state seed0)
997 Stream stepOuter (FIterInit state seed0)
@@ -1005,11 +1005,11 @@ foldIterateM func seed0 (Stream step state) =
1006 $ case res of
1006 $ case res of
1007 FL.Partial fs -> FIterStream st fstep fs extract
1007 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)
1010 {-# INLINE_LATE stepOuter #-}
1010 {-# INLINE_LATE stepOuter #-}
1011 stepOuter _ (FIterInit st seed) = do
1011 stepOuter _ (FIterInit st seed) = do
1012− (FL.Fold fstep initial extract) <- func seed
1012+ (FL.Fold fstep initial extract) <- seed >>= func
1013 iterStep initial st fstep extract
1013 iterStep initial st fstep extract
1014 stepOuter gst (FIterStream st fstep fs extract) = do
1014 stepOuter gst (FIterStream st fstep fs extract) = do
1015 r <- step (adaptState gst) st
1015 r <- step (adaptState gst) st