mmtl-base-15321.1: Control/Monad/Base.hs
{-# LANGUAGE FunctionalDependencies, UndecidableInstances #-}
module Control.Monad.Base where
import Control.Monad.Trans;
import Control.Monad.Identity;
class (Monad b, Monad m) => MonadBase b m | m -> b where liftBase :: b a -> m a;
instance (MonadTrans xT, Monad (xT m), MonadBase b m) => MonadBase b (xT m) where liftBase = lift . liftBase;
instance MonadBase IO IO where liftBase = id;
instance MonadBase Maybe Maybe where liftBase = id;
instance MonadBase (Either a) (Either a) where liftBase = id;
instance MonadBase [] [] where liftBase = id;
instance MonadBase ((->) r) ((->) r) where liftBase = id;
instance MonadBase Identity Identity where liftBase = id;