exference-1.6.0.0: environment/Monad.hs
module Control.Monad where
class Control.Applicative.Applicative m => Monad m where
(>>=) :: m a -> (a -> m b) -> m b
class (Control.Applicative.Alternative m, Monad m) => MonadPlus m where
-- mzero :: m a -- this is a critical case: too generic, yet we might need it
-- at times
-- more specific than (<|>)
-- mplus :: m a -> m a -> m a
(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
join :: Monad m => m (m a) -> m a
msum :: (Foldable t, MonadPlus m) => t (m a) -> m a
mfilter :: MonadPlus m => (a -> Data.Bool.Bool) -> m a -> m a
zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
forever :: Monad m => m () -> m Void
(>>) :: Monad m => m () -> m b -> m b
instance Monad []
instance Monad IO
instance Monad Data.Maybe.Maybe
instance Monad ReadP
instance Monad ReadPrec
instance Monad STM
-- instance Monad ((->) r)
instance Monad (Data.Either.Either e)
instance Monad (ST s)
-- instance Monad (Proxy *)
instance ArrowApply a => Monad (ArrowMonad a)
instance Monad (ST s)
instance Monad m => Monad (WrappedMonad m)