You can call pullback(at: of:)
and pass it a unit vector of the function's output TangentVector type to get what would happen automatically by calling gradient(at:of:)
for a function with an output that conforms to FloatingPoint
let pullbackFunction = pullback(at: myData) { myData in
foowrapper(myData, argument: 3)
}
let unitVector = DiffData.TangentVector.init(x: 1, y: 1, z: 1)
let grad = pullbackFunction(unitVector)
here's some more context
see also autodiff tutorials, specifically part 3
or this section of the Differentiable Programming Manifesto