@@ -22,14 +22,14 @@ applyHomo (Homo f) a = f a
22applyEndo : Endomorphism a -> a -> a
22applyEndo : Endomorphism a -> a -> a
23applyEndo (Endo f) a = f a
23applyEndo (Endo f) a = f a
25−instance Monad (Homomorphism r) where
26− return a = Homo $ const a
27− (Homo h) >>= f = Homo $ \r => applyHomo (f $ h r) r
29instance Applicative (Homomorphism r) where
25instance Applicative (Homomorphism r) where
30 pure a = Homo $ const a
26 pure a = Homo $ const a
31 (Homo f) <$> (Homo a) = Homo $ \r => f r $ a r
27 (Homo f) <$> (Homo a) = Homo $ \r => f r $ a r
29+instance Monad (Homomorphism r) where
30+ return a = Homo $ const a
31+ (Homo h) >>= f = Homo $ \r => applyHomo (f $ h r) r
33instance Semigroup (Endomorphism a) where
33instance Semigroup (Endomorphism a) where
34 (Endo f) <+> (Endo g) = Endo $ g . f
34 (Endo f) <+> (Endo g) = Endo $ g . f