on master help sign in
Downgrade Monad to Applicative
f5e3dc9Ranjeet Kumar Ranjan
core/src/Streamly/Internal/Data/Unfold.hs+8−8
@@ -554,7 +554,7 @@ fromStreamK = Unfold step pure
554-- /Since: 0.8.0/
554-- /Since: 0.8.0/
555--
555--
556{-# INLINE_NORMAL fromStream #-}
556{-# INLINE_NORMAL fromStream #-}
557−fromStream :: Monad m => Unfold m (SerialT m a) a
557+fromStream :: Applicative m => Unfold m (SerialT m a) a
558fromStream = lmap getSerialT fromStreamK
558fromStream = lmap getSerialT fromStreamK
559
559
560-------------------------------------------------------------------------------
560-------------------------------------------------------------------------------
@@ -601,7 +601,7 @@ consM action unf = Unfold step inject
601-- /Since: 0.8.0/
601-- /Since: 0.8.0/
602--
602--
603{-# INLINE_LATE fromList #-}
603{-# INLINE_LATE fromList #-}
604−fromList :: Monad m => Unfold m [a] a
604+fromList :: Applicative m => Unfold m [a] a
605fromList = Unfold step pure
605fromList = Unfold step pure
606
606
607 where
607 where
@@ -615,7 +615,7 @@ fromList = Unfold step pure
615-- /Since: 0.8.0/
615-- /Since: 0.8.0/
616--
616--
617{-# INLINE_LATE fromListM #-}
617{-# INLINE_LATE fromListM #-}
618−fromListM :: Monad m => Unfold m [m a] a
618+fromListM :: Applicative m => Unfold m [m a] a
619fromListM = Unfold step pure
619fromListM = Unfold step pure
620
620
621 where
621 where
@@ -633,7 +633,7 @@ fromListM = Unfold step pure
633-- /Since: 0.8.0/
633-- /Since: 0.8.0/
634--
634--
635{-# INLINE replicateM #-}
635{-# INLINE replicateM #-}
636−replicateM :: Monad m => Int -> Unfold m (m a) a
636+replicateM :: Applicative m => Int -> Unfold m (m a) a
637replicateM n = Unfold step inject
637replicateM n = Unfold step inject
638
638
639 where
639 where
@@ -651,7 +651,7 @@ replicateM n = Unfold step inject
651-- /Since: 0.8.0/
651-- /Since: 0.8.0/
652--
652--
653{-# INLINE repeatM #-}
653{-# INLINE repeatM #-}
654−repeatM :: Monad m => Unfold m (m a) a
654+repeatM :: Applicative m => Unfold m (m a) a
655repeatM = Unfold step pure
655repeatM = Unfold step pure
656
656
657 where
657 where
@@ -665,7 +665,7 @@ repeatM = Unfold step pure
665-- /Since: 0.8.0/
665-- /Since: 0.8.0/
666--
666--
667{-# INLINE iterateM #-}
667{-# 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
669iterateM f = Unfold step id
669iterateM f = Unfold step id
670
670
671 where
671 where
@@ -703,7 +703,7 @@ fromIndicesM gen = Unfold step pure
703-- /Since: 0.8.0/
703-- /Since: 0.8.0/
704--
704--
705{-# INLINE_NORMAL take #-}
705{-# 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
707take n (Unfold step1 inject1) = Unfold step inject
707take n (Unfold step1 inject1) = Unfold step inject
708
708
709 where
709 where
@@ -749,7 +749,7 @@ filter f = filterM (return . f)
749-- /Since: 0.8.0/
749-- /Since: 0.8.0/
750--
750--
751{-# INLINE_NORMAL drop #-}
751{-# 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
753drop n (Unfold step inject) = Unfold step' inject'
753drop n (Unfold step inject) = Unfold step' inject'
754
754
755 where
755 where
docs/API-changelog.txt+4−4
@@ -97,14 +97,14 @@
97@@@ Streamly.Data.Unfold
97@@@ Streamly.Data.Unfold
98# Added
98# Added
99++ crossWith :: Monad m => (b -> c -> d) -> Unfold m a b -> Unfold m a c -> Unfold m a d
99++ 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
101++ dropWhile :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
101++ dropWhile :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
102++ dropWhileM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
102++ dropWhileM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
103++ filter :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
103++ filter :: Monad m => (b -> Bool) -> Unfold m a b -> Unfold m a b
104++ filterM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
104++ filterM :: Monad m => (b -> m Bool) -> Unfold m a b -> Unfold m a b
105−++ fromList :: Monad m => Unfold m [a] a
105+++ fromList :: Applicative m => Unfold m [a] a
106−++ fromListM :: Monad m => Unfold m [m a] a
106+++ fromListM :: Applicative m => Unfold m [m a] a
107−++ fromStream :: (IsStream t, Monad m) => Unfold m (t m a) a
107+++ fromStream :: (IsStream t, Applicative m) => Unfold m (t m a) a
108++ function :: Applicative m => (a -> b) -> Unfold m a b
108++ function :: Applicative m => (a -> b) -> Unfold m a b
109++ functionM :: Applicative m => (a -> m b) -> Unfold m a b
109++ functionM :: Applicative m => (a -> m b) -> Unfold m a b
110++ iterateM :: Monad m => (a -> m a) -> Unfold m (m a) a
110++ 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
161-- /Since: 0.8.0/
161-- /Since: 0.8.0/
162--
162--
163{-# INLINE_NORMAL fromStream #-}
163{-# 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
165fromStream = lmap IsStream.adapt Unfold.fromStream
165fromStream = lmap IsStream.adapt Unfold.fromStream