Goal: Constrain the generic to functions and expose both the parameter tuple and return type in an object.