pipes-protolude-0.1.0.0: src/Pipes/Monad.hs
module Pipes.Monad (
Monad(..)
, MonadPlus(..)
, (=<<)
, (>=>)
, (<=<)
, forever
, join
, mfilter
, guard
, when
, unless
, liftM'
, liftM2'
, ap
, (<$!>)
) where
import Prelude (seq)
-- import Pipes.Base (seq)
import Control.Monad
liftM' :: Monad m => (a -> b) -> m a -> m b
liftM' = (<$!>)
{-# INLINE liftM' #-}
liftM2' :: (Monad m) => (a -> b -> c) -> m a -> m b -> m c
liftM2' f a b = do
x <- a
y <- b
let z = f x y
z `seq` return z
{-# INLINE liftM2' #-}