packages feed

UtilityTM 0.0.1 → 0.0.2

raw patch · 2 files changed

+38/−8 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Control.Monad.TM: allM :: Monad m => (a -> m Bool) -> [a] -> m Bool
+ Control.Monad.TM: anyM :: Monad m => (a -> m Bool) -> [a] -> m Bool
- Control.Monad.TM: (.=<<.) :: (Monad q, Monad m, Traversable m) => m a -> (a -> q (m b)) -> q (m b)
+ Control.Monad.TM: (.=<<.) :: (Monad q, Monad m, Traversable m) => (a -> q (m b)) -> m a -> q (m b)
- Control.Monad.TM: (.>>=.) :: (Monad q, Monad m, Traversable m) => (a -> q (m b)) -> m a -> q (m b)
+ Control.Monad.TM: (.>>=.) :: (Monad q, Monad m, Traversable m) => m a -> (a -> q (m b)) -> q (m b)

Files

UtilityTM.cabal view
@@ -1,5 +1,5 @@ Name:               UtilityTM-Version:            0.0.1+Version:            0.0.2 License:            BSD3 License-File:       LICENSE Author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
src/Control/Monad/TM.hs view
@@ -1,8 +1,10 @@ -- | Monadic combinators missing from the standard library module Control.Monad.TM (-  (.>>=.)-, (.=<<.)+  (.=<<.)+,  (.>>=.)+, anyM+, allM ) where  import Data.Traversable@@ -10,19 +12,47 @@ import Prelude hiding (mapM)  -- | Lifting bind into a monad. Often denoted /concatMapM/.-(.>>=.) ::+(.=<<.) ::   (Monad q, Monad m, Traversable m) =>   (a -> q (m b))   -> m a   -> q (m b)-(.>>=.) f =+(.=<<.) f =   liftM join . mapM f  -- | Lifting bind into a monad. Often denoted /concatMapM/.-(.=<<.) ::+(.>>=.) ::   (Monad q, Monad m, Traversable m) =>   m a   -> (a -> q (m b))   -> q (m b)-(.=<<.) =-  flip (.>>=.)+(.>>=.) =+  flip (.=<<.)++-- | Existential quantification.+anyM ::+  Monad m =>+  (a -> m Bool)+  -> [a]+  -> m Bool+anyM _ []     =+  return False+anyM f (a:as) =+  do z <- f a+     if z+       then return True+       else anyM f as++-- | Universal quantification.+allM ::+  Monad m =>+  (a -> m Bool)+  -> [a]+  -> m Bool+allM _ []     =+  return True+allM f (a:as) =+  do z <- f a+     if z+       then allM f as+       else return False