monad-loops 0.3.2.0 → 0.3.3.0
raw patch · 2 files changed
+8/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Monad.Loops: iterateM_ :: Monad m => (a -> m a) -> a -> m b
Files
- monad-loops.cabal +1/−1
- src/Control/Monad/Loops.hs +7/−0
monad-loops.cabal view
@@ -1,5 +1,5 @@ name: monad-loops-version: 0.3.2.0+version: 0.3.3.0 stability: provisional license: BSD3 license-file: LICENSE
src/Control/Monad/Loops.hs view
@@ -144,6 +144,13 @@ then go else return y +{-# SPECIALIZE iterateM_ :: (a -> IO a) -> a -> IO b #-}+-- |Execute an action forever, feeding the result of each execution as the+-- input to the next.+iterateM_ :: Monad m => (a -> m a) -> a -> m b+iterateM_ f = g+ where g x = f x >>= g+ {-# SPECIALIZE untilM :: IO a -> IO Bool -> IO [a] #-} {-# SPECIALIZE untilM' :: Monad m => m a -> m Bool -> m [a] #-} {-# SPECIALIZE untilM' :: IO a -> IO Bool -> IO [a] #-}