on master help sign in
Functor instance for Homomorphism.
cb5da0astartling
lib/Data/Morphisms.idr+3
@@ -22,6 +22,9 @@ 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
24
24
25+instance Functor (Homomorphism r) where
26+ fmap f (Homo a) = Homo (f . a)
27+
25instance Applicative (Homomorphism r) where
28instance Applicative (Homomorphism r) where
26 pure a = Homo $ const a
29 pure a = Homo $ const a
27 (Homo f) <$> (Homo a) = Homo $ \r => f r $ a r
30 (Homo f) <$> (Homo a) = Homo $ \r => f r $ a r