differential(at:of:)

    func differential<T, R>(at x: T, of f: (T) -> R) -> (T.TangentVector) -> R.TangentVector where T : Differentiable, R : Differentiable