@@ -554,7 +554,7 @@ fromStreamK = Unfold step pure
554554-- /Since: 0.8.0/
555555--
556556{-# INLINE_NORMAL fromStream #-}
557−fromStream :: Monad m => Unfold m (SerialT m a) a
557+fromStream :: Applicative m => Unfold m (SerialT m a) a
558558fromStream = lmap getSerialT fromStreamK
559559
560560-------------------------------------------------------------------------------
@@ -601,7 +601,7 @@ consM action unf = Unfold step inject
601601-- /Since: 0.8.0/
602602--
603603{-# INLINE_LATE fromList #-}
604−fromList :: Monad m => Unfold m [a] a
604+fromList :: Applicative m => Unfold m [a] a
605605fromList = Unfold step pure
606606
607607 where
@@ -615,7 +615,7 @@ fromList = Unfold step pure
615615-- /Since: 0.8.0/
616616--
617617{-# INLINE_LATE fromListM #-}
618−fromListM :: Monad m => Unfold m [m a] a
618+fromListM :: Applicative m => Unfold m [m a] a
619619fromListM = Unfold step pure
620620
621621 where
@@ -633,7 +633,7 @@ fromListM = Unfold step pure
633633-- /Since: 0.8.0/
634634--
635635{-# INLINE replicateM #-}
636−replicateM :: Monad m => Int -> Unfold m (m a) a
636+replicateM :: Applicative m => Int -> Unfold m (m a) a
637637replicateM n = Unfold step inject
638638
639639 where
@@ -651,7 +651,7 @@ replicateM n = Unfold step inject
651651-- /Since: 0.8.0/
652652--
653653{-# INLINE repeatM #-}
654−repeatM :: Monad m => Unfold m (m a) a
654+repeatM :: Applicative m => Unfold m (m a) a
655655repeatM = Unfold step pure
656656
657657 where
@@ -665,7 +665,7 @@ repeatM = Unfold step pure
665665-- /Since: 0.8.0/
666666--
667667{-# INLINE iterateM #-}
668−iterateM :: Monad m => (a -> m a) -> Unfold m (m a) a
668+iterateM :: Applicative m => (a -> m a) -> Unfold m (m a) a
669669iterateM f = Unfold step id
670670
671671 where
@@ -703,7 +703,7 @@ fromIndicesM gen = Unfold step pure
703703-- /Since: 0.8.0/
704704--
705705{-# INLINE_NORMAL take #-}
706−take :: Monad m => Int -> Unfold m a b -> Unfold m a b
706+take :: Applicative m => Int -> Unfold m a b -> Unfold m a b
707707take n (Unfold step1 inject1) = Unfold step inject
708708
709709 where
@@ -749,7 +749,7 @@ filter f = filterM (return . f)
749749-- /Since: 0.8.0/
750750--
751751{-# INLINE_NORMAL drop #-}
752−drop :: Monad m => Int -> Unfold m a b -> Unfold m a b
752+drop :: Applicative m => Int -> Unfold m a b -> Unfold m a b
753753drop n (Unfold step inject) = Unfold step' inject'
754754
755755 where