@@ -28,13 +28,12 @@ instance applyData :: Apply Data where
2828 (<*>) = ap
2929
3030instance applicativeData :: Applicative Data where
31− pure = return
31+ pure = Data
3232
3333instance bindData :: Bind Data where
3434 (>>=) (Data a) f = f a
3535
36−instance monadData :: Monad Data where
37− return = Data
36+instance monadData :: Monad Data
3837
3938data Maybe a = Nothing | Just a
4039
@@ -45,14 +44,13 @@ instance applyMaybe :: Apply Maybe where
4544 (<*>) = ap
4645
4746instance applicativeMaybe :: Applicative Maybe where
48− pure = return
47+ pure = Just
4948
5049instance bindMaybe :: Bind Maybe where
5150 (>>=) Nothing _ = Nothing
5251 (>>=) (Just a) f = f a
5352
54−instance monadMaybe :: Monad Maybe where
55− return = Just
53+instance monadMaybe :: Monad Maybe
5654
5755test4 :: forall a m. (Monad m) => a -> m Number
5856test4 = \_ -> return 1
@@ -72,13 +70,12 @@ instance applyFunction :: Apply ((->) r) where
7270 (<*>) = ap
7371
7472instance applicativeFunction :: Applicative ((->) r) where
75− pure = return
73+ pure a _ = a
7674
7775instance bindFunction :: Bind ((->) r) where
7876 (>>=) f g r = g (f r) r
7977
80−instance monadFunction :: Monad ((->) r) where
81− return a r = a
78+instance monadFunction :: Monad ((->) r)
8279
8380ask r = r
8481