ref: ed4d9b81423432e432b2c171844bd82c4a22580b
parent: 98002b3a7b1788973b3eb0fce2d50fca447a92c8
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Thu Oct 26 14:59:16 EDT 2023
Make it compile.
--- a/lib/Control/Monad.hs
+++ b/lib/Control/Monad.hs
@@ -8,8 +8,8 @@
class (Applicative m) => Monad (m :: Type -> Type) where
(>>=) :: forall a b . m a -> (a -> m b) -> m b
(>>) :: forall a b . m a -> m b -> m b
+ ma >> mb = ma >>= \ _ -> mb
--- ma >> mb = ma >>= \ _ -> mb
-
-return :: forall (m :: Type -> Type) a . Monad m => a -> m a
-return = pure
+ -- Maybe remove this
+ return :: forall a . a -> m a
+ return = pure
--- a/lib/Data/Identity.hs
+++ b/lib/Data/Identity.hs
@@ -6,18 +6,16 @@
newtype Identity a = Identity a
-fm :: forall a b . (a -> b) -> Identity a -> Identity b
-fm f (Identity a) = Identity (f a)
-
instance Functor Identity where
fmap :: forall a b . (a -> b) -> Identity a -> Identity b
fmap f (Identity a) = Identity (f a)
-{-instance Applicative Identity where
+ pure :: forall a . a -> Identity a
pure a = Identity a
+ (<*>) :: forall a b . Identity (a -> b) -> Identity a -> Identity b
Identity f <*> Identity a = Identity (f a)
instance Monad Identity where
+ (>>=) :: forall a b . Identity a -> (a -> Identity b) -> Identity b
Identity a >>= f = f a
--}
--
⑨