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