packages feed

list-t 0.3.0 → 0.3.1

raw patch · 2 files changed

+13/−1 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ ListT: foldMaybe :: (Monad m, MonadTransUncons t) => (r -> a -> m (Maybe r)) -> r -> t m a -> m r

Files

library/ListT.hs view
@@ -10,6 +10,7 @@   tail,   null,   fold,+  foldMaybe,   toList,   toReverseList,   traverse_,@@ -40,6 +41,7 @@ import Control.Monad.IO.Class import Control.Monad.Trans.Class import Control.Monad.Trans.Reader+import Control.Monad.Trans.Maybe import Control.Monad.Trans.Control import Control.Monad.Base @@ -194,6 +196,16 @@ fold :: (Monad m, MonadTransUncons t) => (r -> a -> m r) -> r -> t m a -> m r fold s r =    uncons >=> maybe (return r) (\(h, t) -> s r h >>= \r' -> fold s r' t)++-- |+-- A version of 'fold', which allows early termination.+{-# INLINABLE foldMaybe #-}+foldMaybe :: (Monad m, MonadTransUncons t) => (r -> a -> m (Maybe r)) -> r -> t m a -> m r+foldMaybe s r l =+  liftM (maybe r id) $ runMaybeT $ do+    (h, t) <- MaybeT $ uncons l+    r' <- MaybeT $ s r h+    lift $ foldMaybe s r' t  -- | -- Execute, folding to a list.
list-t.cabal view
@@ -1,7 +1,7 @@ name:   list-t version:-  0.3.0+  0.3.1 synopsis:   ListT done right description: