{-# LANGUAGE TypeFamilies, NoMonomorphismRestriction, NoImplicitPrelude, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances #-} module Control.RMonad.Trans where import Prelude hiding (return, fail, (>>=), (>>), (=<<), sequence, sequence_, mapM, mapM_) import Control.RMonad import Control.Monad.Trans.List class RMonadTrans t where lift :: (RMonad m, Suitable m a, Suitable (t m) a) => m a -> t m a class RMonad m => RMonadIO m where liftIO :: Suitable m a => IO a -> m a instance RMonadIO IO where liftIO = id