At the moment, DI only has value_and_pullback, which computes the primal and the cotangent at once. Most rule definition tools require the pullback to be split into a closure so that it can be applied at a later point in time. This would give a roughly x2 performance increase for DifferentiateWith.