We report on our experience implementing category theory in Coq 8.5.

Our work formalizes most of basic category theory, including concepts

not covered by existing formalizations, in a library that is fit to be

used as a general-purpose category-theoretical foundation.

Our development particularly takes advantage of two features new to

Coq 8.5: primitive projections for records and universe polymorphism.

Primitive projections allow for well-behaved dualities while universe

polymorphism provides a relative notion of largeness and smallness.

The latter is one of the main contributions of this paper. It pushes

the limits of the new universe polymorphism and constraint inference

algorithm of Coq 8.5.

In this paper we present in detail smallness and largeness in

categories and the foundation they are built on top of. We

furthermore explain how we have used the universe polymorphism of Coq 8.5

to represent smallness and largeness arguments by simply ignoring

them and entrusting them to the universe inference algorithm of Coq 8.5.

We also briefly discuss our experience throughout this

implementation, discuss concepts formalized in this development and

give a comparison with a few other developments of similar extent.