composition-extra-0.0.0.1: src/Data/Functor/Contravariant/Composition.hs
module Data.Functor.Contravariant.Composition where
import Data.Functor.Contravariant
(<-$>) :: Contravariant f =>
(a -> b)
-> f b
-> f a
(<-$>) = contramap
(<-$$>) :: (Contravariant f0, Contravariant f1) =>
(a -> b)
-> f1 (f0 a)
-> f1 (f0 b)
(<-$$>) = contramap . contramap
(<-$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2) =>
(a -> b)
-> f2 (f1 (f0 b))
-> f2 (f1 (f0 a))
(<-$$$>) = contramap . contramap . contramap
(<-$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3) =>
(a -> b)
-> f3 (f2 (f1 (f0 a)))
-> f3 (f2 (f1 (f0 b)))
(<-$$$$>) = contramap . contramap . contramap . contramap
(<-$$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3, Contravariant f4) =>
(a -> b)
-> f4 (f3 (f2 (f1 (f0 b))))
-> f4 (f3 (f2 (f1 (f0 a))))
(<-$$$$$>) = contramap . contramap . contramap . contramap . contramap