Should `ParamSpec.args` be allowed inside `Unpack`?

Is there a use case? The currently working code looks nicer in your example.

That’s not really true, right? You always have to combine P.args with P.kwargs, because for most Python functions, arguments can be passed in positionally or with a keyword. If you have a function

def f (a: int, b: str = "") -> None: ...

then what does tuple[int, *P.args] mean? It seems to depend on how the function was called.