Monatron-IO-1.0: Control/Monatron/IO.hs
-- | Instances of the 'MonadIO' class for 'StateT', 'WriterT', 'ReaderT', 'ExcT',
-- 'ContT', and 'ListT'.
--
-- Re-exports "Control.Monad.IO.Class" for convenience.
module Control.Monatron.IO (module Control.Monad.IO.Class) where
import Control.Monatron.Monatron (MonadT(..), Monoid, StateT, WriterT, ReaderT, ExcT, ContT, ListT)
import Control.Monad.IO.Class
instance MonadIO m => MonadIO (StateT z m) where
liftIO = lift . liftIO
instance (MonadIO m, Monoid z) => MonadIO (WriterT z m) where
liftIO = lift . liftIO
instance MonadIO m => MonadIO (ReaderT z m) where
liftIO = lift . liftIO
instance MonadIO m => MonadIO (ExcT z m) where
liftIO = lift . liftIO
instance MonadIO m => MonadIO (ContT r m) where
liftIO = lift . liftIO
instance MonadIO m => MonadIO (ListT m) where
liftIO = lift . liftIO