-- 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

-- | Lift a computation from the base monad
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 Control.Monad.Base.MonadBase GHC.Types.IO GHC.Types.IO
instance Control.Monad.Base.MonadBase GHC.Base.Maybe GHC.Base.Maybe
instance Control.Monad.Base.MonadBase (Data.Either.Either e) (Data.Either.Either e)
instance Control.Monad.Base.MonadBase [] []
instance Control.Monad.Base.MonadBase ((->) r) ((->) r)
instance Control.Monad.Base.MonadBase Data.Functor.Identity.Identity Data.Functor.Identity.Identity
instance Control.Monad.Base.MonadBase GHC.Conc.Sync.STM GHC.Conc.Sync.STM
instance Control.Monad.Base.MonadBase (Control.Monad.ST.Lazy.Imp.ST s) (Control.Monad.ST.Lazy.Imp.ST s)
instance Control.Monad.Base.MonadBase (GHC.ST.ST s) (GHC.ST.ST s)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Identity.IdentityT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Maybe.MaybeT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.List.ListT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Reader.ReaderT r m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.State.Lazy.StateT s m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.State.Strict.StateT s m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Cont.ContT r m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Except.ExceptT e m)
instance (GHC.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance (GHC.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (GHC.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance (GHC.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.RWS.Strict.RWST r w s m)
instance (Control.Monad.Trans.Error.Error e, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Error.ErrorT e m)
