@@ -4,8 +4,8 @@ import Prelude
4
4
5
5
import Control.Monad.Aff (Aff ())
6
6
import Control.Monad.Cont.Trans (ContT ())
7
+ import Control.Monad.Eff.Class (MonadEff )
7
8
import Control.Monad.Except.Trans (ExceptT ())
8
- import Control.Monad.Free (Free (), liftF )
9
9
import Control.Monad.List.Trans (ListT ())
10
10
import Control.Monad.Maybe.Trans (MaybeT ())
11
11
import Control.Monad.Reader.Trans (ReaderT ())
@@ -16,50 +16,32 @@ import Control.Monad.Writer.Trans (WriterT())
16
16
17
17
import Data.Monoid (Monoid )
18
18
19
- -- | A class for types that can carry an `Aff` value by some means.
20
- class Affable e m where
21
- liftAff :: forall a . Aff e a -> m a
19
+ class (MonadEff eff m ) <= MonadAff eff m where
20
+ liftAff :: forall a . Aff eff a -> m a
22
21
23
- instance affableAff :: Affable e (Aff e ) where
22
+ instance monadAffAff :: MonadAff e (Aff e ) where
24
23
liftAff = id
25
24
26
- instance affableFree :: (Affable eff f ) => Affable eff (Free f ) where
27
- liftAff = liftF <<< liftAff
28
-
29
- instance affableContT :: (Monad m , Affable eff m ) => Affable eff (ContT r m ) where
25
+ instance monadAffContT :: (MonadAff eff m ) => MonadAff eff (ContT r m ) where
30
26
liftAff = lift <<< liftAff
31
27
32
- instance affableExceptT :: (Monad m , Affable eff m ) => Affable eff (ExceptT e m ) where
28
+ instance monadAffExceptT :: (MonadAff eff m ) => MonadAff eff (ExceptT e m ) where
33
29
liftAff = lift <<< liftAff
34
30
35
- instance affableListT :: (Monad m , Affable eff m ) => Affable eff (ListT m ) where
31
+ instance monadAffListT :: (MonadAff eff m ) => MonadAff eff (ListT m ) where
36
32
liftAff = lift <<< liftAff
37
33
38
- instance affableMaybe :: (Monad m , Affable eff m ) => Affable eff (MaybeT m ) where
34
+ instance monadAffMaybe :: (MonadAff eff m ) => MonadAff eff (MaybeT m ) where
39
35
liftAff = lift <<< liftAff
40
36
41
- instance affableReader :: (Monad m , Affable eff m ) => Affable eff (ReaderT r m ) where
37
+ instance monadAffReader :: (MonadAff eff m ) => MonadAff eff (ReaderT r m ) where
42
38
liftAff = lift <<< liftAff
43
39
44
- instance affableRWS :: (Monad m , Monoid w , Affable eff m ) => Affable eff (RWST r w s m ) where
40
+ instance monadAffRWS :: (MonadAff eff m , Monoid w ) => MonadAff eff (RWST r w s m ) where
45
41
liftAff = lift <<< liftAff
46
42
47
- instance affableState :: (Monad m , Affable eff m ) => Affable eff (StateT s m ) where
43
+ instance monadAffState :: (MonadAff eff m ) => MonadAff eff (StateT s m ) where
48
44
liftAff = lift <<< liftAff
49
45
50
- instance affableWriter :: (Monad m , Monoid w , Affable eff m ) => Affable eff (WriterT w m ) where
46
+ instance monadAffWriter :: (MonadAff eff m , Monoid w ) => MonadAff eff (WriterT w m ) where
51
47
liftAff = lift <<< liftAff
52
-
53
- -- | A class for types where the `Affable` instance for a `Monad` is also a monad
54
- -- | morphism.
55
- class (Monad m , Affable e m ) <= MonadAff e m
56
-
57
- instance monadAffAff :: MonadAff e (Aff e )
58
- instance monadAffContT :: (Monad m , Affable eff m ) => MonadAff eff (ContT r m )
59
- instance monadAffExceptT :: (Monad m , Affable eff m ) => MonadAff eff (ExceptT e m )
60
- instance monadAffListT :: (Monad m , Affable eff m ) => MonadAff eff (ListT m )
61
- instance monadAffMaybe :: (Monad m , Affable eff m ) => MonadAff eff (MaybeT m )
62
- instance monadAffReader :: (Monad m , Affable eff m ) => MonadAff eff (ReaderT r m )
63
- instance monadAffRWS :: (Monad m , Monoid w , Affable eff m ) => MonadAff eff (RWST r w s m )
64
- instance monadAffState :: (Monad m , Affable eff m ) => MonadAff eff (StateT s m )
65
- instance monadAffWriter :: (Monad m , Monoid w , Affable eff m ) => MonadAff eff (WriterT w m )
0 commit comments