@@ -14,7 +14,6 @@ module Control.Monad.Free.Trans
14
14
import Prelude
15
15
16
16
import Control.Apply (lift2 )
17
- import Control.Monad.Eff.Class (class MonadEff , liftEff )
18
17
import Control.Monad.Error.Class (class MonadThrow , throwError )
19
18
import Control.Monad.Reader.Class (class MonadAsk , ask )
20
19
import Control.Monad.Rec.Class (class MonadRec , Step (..), tailRecM )
@@ -24,7 +23,7 @@ import Control.Monad.Writer.Class (class MonadTell, tell)
24
23
import Data.Bifunctor (bimap )
25
24
import Data.Either (Either (..))
26
25
import Data.Exists (Exists , mkExists , runExists )
27
- import Data.Monoid (class Monoid , mempty )
26
+ import Effect.Class (class MonadEffect , liftEffect )
28
27
29
28
-- | Instead of implementing `bind` directly, we capture the bind using this data structure, to
30
29
-- | evaluate later.
@@ -88,8 +87,8 @@ instance semigroupFreeT :: (Functor f, Monad m, Semigroup w) => Semigroup (FreeT
88
87
instance monoidFreeT :: (Functor f , Monad m , Monoid w ) => Monoid (FreeT f m w ) where
89
88
mempty = pure mempty
90
89
91
- instance monadEffFreeT :: (Functor f , MonadEff eff m ) => MonadEff eff (FreeT f m ) where
92
- liftEff = lift <<< liftEff
90
+ instance monadEffectFreeT :: (Functor f , MonadEffect m ) => MonadEffect (FreeT f m ) where
91
+ liftEffect = lift <<< liftEffect
93
92
94
93
instance monadAskFreeT :: (Functor f , MonadAsk r m ) => MonadAsk r (FreeT f m ) where
95
94
ask = lift ask
@@ -109,11 +108,11 @@ liftFreeT fa = FreeT \_ -> pure (Right (map pure fa))
109
108
110
109
-- | Change the underlying `Monad` for a `FreeT` action.
111
110
hoistFreeT :: forall f m n a . Functor f => Functor n => (m ~> n ) -> FreeT f m a -> FreeT f n a
112
- hoistFreeT = bimapFreeT id
111
+ hoistFreeT = bimapFreeT identity
113
112
114
113
-- | Change the base functor `f` for a `FreeT` action.
115
114
interpret :: forall f g m a . Functor f => Functor m => (f ~> g ) -> FreeT f m a -> FreeT g m a
116
- interpret nf = bimapFreeT nf id
115
+ interpret nf = bimapFreeT nf identity
117
116
118
117
-- | Change the base functor `f` and the underlying `Monad` for a `FreeT` action.
119
118
bimapFreeT :: forall f g m n a . Functor f => Functor n => (f ~> g ) -> (m ~> n ) -> FreeT f m a -> FreeT g n a
0 commit comments