UtilityTM-0.0.1: src/Control/Monad/TM.hs
-- | Monadic combinators missing from the standard library
module Control.Monad.TM
(
(.>>=.)
, (.=<<.)
) where
import Data.Traversable
import Control.Monad hiding (mapM)
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 =
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 (.>>=.)