added a `tangent_type` method to get the exact return type in jacobian transpose vector product rule