# What is a colimit, really?

I can sot of give the definition of a colimit (or limit) as the initial (or terminal) cocone (or cone) under (or over) a certain diagram. Some like to say that colimit (or limit) is a functor and indeed one can define it as a left (or right) adjoint of the diagonal (assuming it exists). But if we use the initial or terminal object definition, it is not so much a functor, since it is well defined, but only well defined up to canonical isomorphism. Some choice will give us a real functor, but that is somewhat contrived. So the question is, if this is not a functor, what kind of categorical gadget is it? Any references will be welcome.

-
It is a functor; you just have to make a bunch of choices of what objects to call "the" colimit of what diagrams, but once you do that all of the corresponding morphisms work out just fine by abstract nonsense. – Qiaochu Yuan Jul 28 '11 at 22:02
I agree with all that you have just said. However, making the choices seems "evil". – Lunasaurus Rex Jul 28 '11 at 22:05
Sometimes a necessary evil. – Lunasaurus Rex Jul 28 '11 at 22:09

Well, the thing that may or may not be a "real functor" (and which may even fail to exist if the limit(/colimit) does not always exist) is in any case a "profunctor" (that is, a functor into $Set^{C^{op}}$ (or $Set^C$ for colimits) rather than into $C$). The limit of a diagram will actually exist just in case the profunctor's value at that diagram is a representable presheaf (that is, one in the range (up to isomorphism) of the Yoneda embedding). If one makes a choice of such a representation at every diagram, one can factor the entire profunctor through the Yoneda embedding, into a genuine functor. This of course is precisely the choice you want to avoid, but it indicates that one can at least still treat the profunctor as an "anafunctor" in such cases (essentially, a functor whose value at an object/morphism is only determined up to isomorphism, in a coherent way). Further reading on profunctors and anafunctors (for example, at the nLab) may be precisely the sort of thing you are looking for.