shithub: MicroHs

Download patch

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
--}
--