§ Category Theory
Contravariant functor is like a Functor, but it reverses the direction of morphisms. Contravariant functor from category to category is simply a Functor from to .
Every arrow (in ) is mapped to an arrow (in ).
Note that Cofunctor is a misnomer for contravariant functor, as the dual of a functor is a functor.
class Contravariant f where contramap :: (a -> b) -> f b -> f a -- = :: (a -> b) -> (f b -> f a) -- must satisfy: -- contramap id = id -- contramap f . contramap g = contramap (g . f)