File tree Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -41,22 +41,20 @@ mapMaybeT f (MaybeT m) = MaybeT (f m)
41
41
42
42
derive instance newtypeMaybeT :: Newtype (MaybeT m a ) _
43
43
44
- instance functorMaybeT :: Monad m => Functor (MaybeT m ) where
45
- map = liftA1
44
+ instance functorMaybeT :: Functor m => Functor (MaybeT m ) where
45
+ map f ( MaybeT ma) = MaybeT (map f <$> ma)
46
46
47
- instance applyMaybeT :: Monad m => Apply (MaybeT m ) where
48
- apply = ap
47
+ instance applyMaybeT :: Apply m => Apply (MaybeT m ) where
48
+ apply ( MaybeT f) ( MaybeT x) = MaybeT (apply <$> f <*> x)
49
49
50
- instance applicativeMaybeT :: Monad m => Applicative (MaybeT m ) where
50
+ instance applicativeMaybeT :: Applicative m => Applicative (MaybeT m ) where
51
51
pure = MaybeT <<< pure <<< Just
52
52
53
53
instance bindMaybeT :: Monad m => Bind (MaybeT m ) where
54
54
bind (MaybeT x) f = MaybeT do
55
- v <- x
56
- case v of
55
+ x >>= case _ of
57
56
Nothing -> pure Nothing
58
- Just y -> case f y of
59
- MaybeT m -> m
57
+ Just y -> case f y of MaybeT m -> m
60
58
61
59
instance monadMaybeT :: Monad m => Monad (MaybeT m )
62
60
You can’t perform that action at this time.
0 commit comments