I think most of this can be generalized to adjoint functors.