on master help sign in
put Homomorphism's Applicative instance before its Monad instance.

This seems to be required for idris to be happy.

commitf6a62bf4aba5d5b7e263b4b17a2bdc19ce6bf1ee authorstartling <tdixon51793@gmail.com> dateMon 19 Nov 2012, 13:19 (14 years ago) parent455b962
1 file changed+4−4
lib/Data/Morphisms.idr+4−4
lib/Data/Morphisms.idr+4−4
@@ -22,14 +22,14 @@ applyHomo (Homo f) a = f a
2222applyEndo : Endomorphism a -> a -> a
2323applyEndo (Endo f) a = f a
2424
25−instance Monad (Homomorphism r) where
26− return a = Homo $ const a
27− (Homo h) >>= f = Homo $ \r => applyHomo (f $ h r) r
28−
2925instance Applicative (Homomorphism r) where
3026 pure a = Homo $ const a
3127 (Homo f) <$> (Homo a) = Homo $ \r => f r $ a r
3228
29+instance Monad (Homomorphism r) where
30+ return a = Homo $ const a
31+ (Homo h) >>= f = Homo $ \r => applyHomo (f $ h r) r
32+
3333instance Semigroup (Endomorphism a) where
3434 (Endo f) <+> (Endo g) = Endo $ g . f
3535