|
1 | 1 | module Control.Monad.Aff.Class where
|
2 |
| - import Prelude (id) |
| 2 | + |
| 3 | + import Prelude |
| 4 | + |
3 | 5 | import Control.Monad.Aff
|
| 6 | + import Control.Monad.Cont.Trans (ContT()) |
| 7 | + import Control.Monad.Error.Trans (ErrorT()) |
| 8 | + import Control.Monad.Except.Trans (ExceptT()) |
| 9 | + import Control.Monad.List.Trans (ListT()) |
| 10 | + import Control.Monad.Maybe.Trans (MaybeT()) |
| 11 | + import Control.Monad.Reader.Trans (ReaderT()) |
| 12 | + import Control.Monad.RWS.Trans (RWST()) |
| 13 | + import Control.Monad.State.Trans (StateT()) |
| 14 | + import Control.Monad.Trans (lift) |
| 15 | + import Control.Monad.Writer.Trans (WriterT()) |
| 16 | + |
| 17 | + import Data.Monoid (Monoid) |
4 | 18 |
|
5 | 19 | class MonadAff e m where
|
6 | 20 | liftAff :: forall a. Aff e a -> m a
|
7 | 21 |
|
8 | 22 | instance monadAffAff :: MonadAff e (Aff e) where
|
9 | 23 | liftAff = id
|
| 24 | + |
| 25 | + instance monadAffContT :: (Monad m, MonadAff eff m) => MonadAff eff (ContT r m) where |
| 26 | + liftAff = lift <<< liftAff |
| 27 | + |
| 28 | + instance monadAffError :: (Monad m, MonadAff eff m) => MonadAff eff (ErrorT e m) where |
| 29 | + liftAff = lift <<< liftAff |
| 30 | + |
| 31 | + instance monadAffExceptT :: (Monad m, MonadAff eff m) => MonadAff eff (ExceptT e m) where |
| 32 | + liftAff = lift <<< liftAff |
| 33 | + |
| 34 | + instance monadAffListT :: (Monad m, MonadAff eff m) => MonadAff eff (ListT m) where |
| 35 | + liftAff = lift <<< liftAff |
| 36 | + |
| 37 | + instance monadAffMaybe :: (Monad m, MonadAff eff m) => MonadAff eff (MaybeT m) where |
| 38 | + liftAff = lift <<< liftAff |
| 39 | + |
| 40 | + instance monadAffReader :: (Monad m, MonadAff eff m) => MonadAff eff (ReaderT r m) where |
| 41 | + liftAff = lift <<< liftAff |
| 42 | + |
| 43 | + instance monadAffRWS :: (Monad m, Monoid w, MonadAff eff m) => MonadAff eff (RWST r w s m) where |
| 44 | + liftAff = lift <<< liftAff |
| 45 | + |
| 46 | + instance monadAffState :: (Monad m, MonadAff eff m) => MonadAff eff (StateT s m) where |
| 47 | + liftAff = lift <<< liftAff |
| 48 | + |
| 49 | + instance monadAffWriter :: (Monad m, Monoid w, MonadAff eff m) => MonadAff eff (WriterT w m) where |
| 50 | + liftAff = lift <<< liftAff |
0 commit comments