# 📝Contravariant Functor

Contravariant functor is like a Functor, but it reverses the direction of morphisms. Contravariant functor from category $C$ to category $D$ is simply a Functor from $C^{op}$ to $D$.

Note that *Cofunctor* is a misnomer for contravariant functor, as the dual of a functor is a functor.

Haskelly-speaking:

```
class Contravariant f where
contramap :: (a -> b) -> f b -> f a
-- must satisfy:
-- contramap id = id
-- contramap f . contramap g = contramap (g . f)
```