-- 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 monadLib's
--   BaseM typeclass to transformers.
@package transformers-base
@version 0.4.6

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

-- | Lift a computation from the base monad
liftBase :: MonadBase b m => b α -> m α

-- | Can be used as a default implementation for liftBase.
--   
--   Note that: liftBaseDefault = lift . liftBase
liftBaseDefault :: forall t b (m :: Type -> Type) α. (MonadTrans t, MonadBase b m) => b α -> t m α
instance Control.Monad.Base.MonadBase (GHC.Internal.Data.Either.Either e) (GHC.Internal.Data.Either.Either e)
instance Control.Monad.Base.MonadBase ((->) r) ((->) r)
instance Control.Monad.Base.MonadBase GHC.Types.IO GHC.Types.IO
instance Control.Monad.Base.MonadBase GHC.Internal.Data.Functor.Identity.Identity GHC.Internal.Data.Functor.Identity.Identity
instance Control.Monad.Base.MonadBase [] []
instance Control.Monad.Base.MonadBase GHC.Internal.Maybe.Maybe GHC.Internal.Maybe.Maybe
instance Control.Monad.Base.MonadBase GHC.Internal.Conc.Sync.STM GHC.Internal.Conc.Sync.STM
instance Control.Monad.Base.MonadBase (GHC.Internal.ST.ST s) (GHC.Internal.ST.ST s)
instance Control.Monad.Base.MonadBase (GHC.Internal.Control.Monad.ST.Lazy.Imp.ST s) (GHC.Internal.Control.Monad.ST.Lazy.Imp.ST s)
instance (GHC.Internal.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Accum.AccumT w 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 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 (GHC.Internal.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.RWS.CPS.RWST r w s m)
instance (GHC.Internal.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 (GHC.Internal.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 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.Select.SelectT r 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.State.Lazy.StateT s m)
instance (GHC.Internal.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Writer.CPS.WriterT w m)
instance (GHC.Internal.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (GHC.Internal.Base.Monoid w, Control.Monad.Base.MonadBase b m) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Writer.Lazy.WriterT w m)
