-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Lift computations from the bottom of a transformer stack
--   
--   This package provides a straightforward port of <tt>monadLib</tt>'s
--   BaseM typeclass to <tt>transformers</tt>.
@package transformers-base
@version 0.4.4

module Control.Monad.Base
class (Applicative b, Applicative m, Monad b, Monad m) => MonadBase b m | m -> b
liftBase :: MonadBase b m => b α -> m α

-- | Can be used as a default implementation for <a>liftBase</a>.
--   
--   Note that: <tt>liftBaseDefault = <a>lift</a> . <a>liftBase</a></tt>
liftBaseDefault :: (MonadTrans t, MonadBase b m) => b α -> t m α
instance [safe] (Error e, MonadBase b m) => MonadBase b (ErrorT e m)
instance [safe] (Monoid w, MonadBase b m) => MonadBase b (RWST r w s m)
instance [safe] (Monoid w, MonadBase b m) => MonadBase b (RWST r w s m)
instance [safe] (Monoid w, MonadBase b m) => MonadBase b (WriterT w m)
instance [safe] (Monoid w, MonadBase b m) => MonadBase b (WriterT w m)
instance [safe] MonadBase b m => MonadBase b (ExceptT e m)
instance [safe] MonadBase b m => MonadBase b (ContT r m)
instance [safe] MonadBase b m => MonadBase b (StateT s m)
instance [safe] MonadBase b m => MonadBase b (StateT s m)
instance [safe] MonadBase b m => MonadBase b (ReaderT r m)
instance [safe] MonadBase b m => MonadBase b (ListT m)
instance [safe] MonadBase b m => MonadBase b (MaybeT m)
instance [safe] MonadBase b m => MonadBase b (IdentityT m)
instance [safe] MonadBase (ST s) (ST s)
instance [safe] MonadBase (ST s) (ST s)
instance [safe] MonadBase STM STM
instance [safe] MonadBase Identity Identity
instance [safe] MonadBase ((->) r) ((->) r)
instance [safe] MonadBase [] []
instance [safe] MonadBase (Either e) (Either e)
instance [safe] MonadBase Maybe Maybe
instance [safe] MonadBase IO IO
