Julio: it's very good that you brought this up! If you read old books like Mac Lane's you will meet contravariant functors, so you need to know how to deal with them.

But a lot of modern category theorists, and certainly Fong and Spivak's book and me in this course, **never use** contravariant functors \\(F : \mathcal{X} \to \mathcal{Y} \\). As a substitute, we always use ordinary functors \\(F : \mathcal{X}^{\text{op}} \to \mathcal{Y}\\) or \\(F : \mathcal{X} \to \mathcal{Y}^{\text{op}} \\).

All three of these are just different ways of talking about the same idea. The practical advantage with the modern approach is that if you see someone write \\(F : \mathcal{X} \to \mathcal{Y}\\), you never need to ask "is that functor covariant or contravariant?", and perhaps riffle back 10 pages to try to find where this was stated. You know right away that it's covariant - that is, an ordinary functor.

The conceptual advantage is that all our arrows between categories are morphisms in \\(\mathrm{Cat}\\) - that is, ordinary functors. It's bad, in category theory, to be unclear which category your arrows are morphisms in. When category theorists study categories, they like to work in \\(\mathrm{Cat}\\).

Further, we never need to engage in mental backflips like this:

> if we simultaneously apply the op-trick and the contravariant functor we effectively reverse the normal \\(\mathcal{C}\\)-arrow direction twice (which amounts to not reversing it at all)!

We _can't_, because we don't talk about contravariant functors.

Of course it's fun to get confused and then deconfused - that's what math is all about. But this particular kind of mental acrobatics can be avoided, saving our energy for more exciting games.

But a lot of modern category theorists, and certainly Fong and Spivak's book and me in this course, **never use** contravariant functors \\(F : \mathcal{X} \to \mathcal{Y} \\). As a substitute, we always use ordinary functors \\(F : \mathcal{X}^{\text{op}} \to \mathcal{Y}\\) or \\(F : \mathcal{X} \to \mathcal{Y}^{\text{op}} \\).

All three of these are just different ways of talking about the same idea. The practical advantage with the modern approach is that if you see someone write \\(F : \mathcal{X} \to \mathcal{Y}\\), you never need to ask "is that functor covariant or contravariant?", and perhaps riffle back 10 pages to try to find where this was stated. You know right away that it's covariant - that is, an ordinary functor.

The conceptual advantage is that all our arrows between categories are morphisms in \\(\mathrm{Cat}\\) - that is, ordinary functors. It's bad, in category theory, to be unclear which category your arrows are morphisms in. When category theorists study categories, they like to work in \\(\mathrm{Cat}\\).

Further, we never need to engage in mental backflips like this:

> if we simultaneously apply the op-trick and the contravariant functor we effectively reverse the normal \\(\mathcal{C}\\)-arrow direction twice (which amounts to not reversing it at all)!

We _can't_, because we don't talk about contravariant functors.

Of course it's fun to get confused and then deconfused - that's what math is all about. But this particular kind of mental acrobatics can be avoided, saving our energy for more exciting games.