derivative(of:)

func derivative<T, U, V, R>(of f: @escaping (T, U, V) -> R) -> (T, U, V) -> R.TangentVector where T : FloatingPoint, T : Differentiable, T == T.TangentVector, U : FloatingPoint, U : Differentiable, U == U.TangentVector, V : FloatingPoint, V : Differentiable, V == V.TangentVector, R : Differentiable