I suggest deriving the limit from the colimit operations rather than vice versa. At some point, we can derive most colimit operations from the towers and have less code to verify in Coq. Currently, our towers for the colimits are shorter than those for limits, where the latter are the ones that need several opposite-category constructors.