on master help sign in
Downgrade Monad to Applicative
commitf5e3dc939446dc53e0ce53f0ed4c71e5f1fa36f0 authorRanjeet Kumar Ranjan <ranjeetr@composewell.com> dateWed 30 Mar 2022, 17:48 (5 years ago) parentfe89e02
3 files changed+13−13
core/src/Streamly/Internal/Data/Unfold.hs+8−8 docs/API-changelog.txt+4−4 src/Streamly/Data/Unfold.hs+1−1
core/src/Streamly/Internal/Data/Unfold.hs+8−8
@@ -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
docs/API-changelog.txt+4−4
@@ -97,14 +97,14 @@
9797@@@ Streamly.Data.Unfold
9898# Added
9999++ crossWith :: Monad m => (b -> c -> d) -> Unfold m a b -> Unfold m a c -> Unfold m a d
100−++ drop :: Monad m => Int -> Unfold m a b -> Unfold m a b
100+++ drop :: Applicative m => Int -> Unfold m a b -> Unfold m a b
101101++ dropWhile :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
102102++ dropWhileM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
103103++ filter :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
104104++ filterM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
105−++ fromList :: Monad m => Unfold m [a] a
106−++ fromListM :: Monad m => Unfold m [m a] a
107−++ fromStream :: (IsStream t, Monad m) => Unfold m (t m a) a
105+++ fromList :: Applicative m => Unfold m [a] a
106+++ fromListM :: Applicative m => Unfold m [m a] a
107+++ fromStream :: (IsStream t, Applicative m) => Unfold m (t m a) a
108108++ function :: Applicative m => (a -> b) -> Unfold m a b
109109++ functionM :: Applicative m => (a -> m b) -> Unfold m a b
110110++ iterateM :: Monad m => (a -> m a) -> Unfold m (m a) a
src/Streamly/Data/Unfold.hs+1−1
@@ -161,5 +161,5 @@ import qualified Streamly.Internal.Data.Unfold as Unfold
161161-- /Since: 0.8.0/
162162--
163163{-# INLINE_NORMAL fromStream #-}
164−fromStream :: (IsStream t, Monad m) => Unfold m (t m a) a
164+fromStream :: (IsStream t, Applicative m) => Unfold m (t m a) a
165165fromStream = lmap IsStream.adapt Unfold.fromStream