John wrote:

> An object of \\(\mathrm{Gr}(I)\\) is an object \\(d\\) of \\(\mathcal{D}\\) together with an element of the set \\(I(d)\\). So, a functor \\(\mathrm{Gr}(I) \to \mathcal{C}\\) takes an object \\(d\\) of \\(\mathcal{D}\\) together with an element of \\(I(d)\\) and spits out an object in \\(\mathcal{C}\\). On the other hand, a functor \\(\mathcal{C}\to \mathbf{Set}\\) takes an object of \\(\mathcal{C}\\) and spits out a set. These are pretty darn different things to do!

That's true, but there's a way to at least make the types match up: We can ask if the following square commutes (for a suitable choice of left or right Kan extension):

\[\begin{array}{ccccc}
& & \text{Grothendieck construction} & & \\\\
\text{Left/right} & \text{Functors }\mathcal{D}\to\mathbf{Set} & \to & \text{Functors to }\mathcal{D} & \\\\
\text{Kan extension along } & \downarrow & & \downarrow & \text{Compose with }\\\\
\mathcal{D}\to\mathcal{C} & \text{Functors }\mathcal{C}\to\mathbf{Set} & \to & \text{Functors to }\mathcal{C} & \mathcal{D}\to\mathcal{C} \\\\
& & \text{Grothendieck construction} & &
\end{array}\]

It's bizarre to me that (certain types of) functors to \\(\mathcal{C}\\) correspond to functors \\(\mathcal{C}\to\mathbf{Set}\\). The former can be easily pushed forward along functors \\(\mathcal{C}\to\mathcal{C}'\\); the latter can be easily pulled *back* along functors \\(\mathcal{C}'\to\mathcal{C}\\). Usually I expect at most one of these to be easy!