Skip to content

Commit 5c96e6a

Browse files
committed
Instances for ListT and ContT
1 parent e09ecc5 commit 5c96e6a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/Control/Monad/Cont/Trans.purs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module Control.Monad.Cont.Trans where
55
import Prelude
66

77
import Control.Monad.Trans
8+
import Control.Monad.Eff.Class
89

910
-- | The CPS monad transformer.
1011
-- |
@@ -53,3 +54,6 @@ instance monadContT :: (Monad m) => Monad (ContT r m)
5354

5455
instance monadTransContT :: MonadTrans (ContT r) where
5556
lift m = ContT (\k -> m >>= k)
57+
58+
instance monadEffContT :: (Monad m, MonadEff eff m) => MonadEff eff (ContT r m) where
59+
liftEff = lift <<< liftEff

src/Control/Monad/List/Trans.purs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ module Control.Monad.List.Trans
3333
import Prelude
3434
import Control.Alt (Alt)
3535
import Control.Alternative (Alternative)
36-
import Control.Monad.Trans (MonadTrans)
36+
import Control.Monad.Trans (MonadTrans, lift)
3737
import Control.MonadPlus (MonadPlus)
38+
import Control.Monad.Eff.Class
3839
import Control.Plus (Plus)
3940
import Data.Lazy (Lazy(), defer, force)
4041
import Data.Maybe (Maybe(..), fromMaybe)
@@ -278,3 +279,6 @@ instance plusListT :: (Monad f) => Plus (ListT f) where
278279
instance alternativeListT :: (Monad f) => Alternative (ListT f)
279280

280281
instance monadPlusListT :: (Monad f) => MonadPlus (ListT f)
282+
283+
instance monadEffListT :: (Monad m, MonadEff eff m) => MonadEff eff (ListT m) where
284+
liftEff = lift <<< liftEff

0 commit comments

Comments
 (0)