`Concatenate` is useful in a non-generic context, to define a callable which takes certain arguments, followed by varargs. For example: from collections.abc import Callable from typing import Concatenate, ParamSpec P = ParamSpec("P") SomeCallableType = Callable[Concatenate[int, P], None] class Foo: some_callable: SomeCallableType[P] But type checkers will generate an error, e.g that `P` is unbound (mypy) or that it's meaningless (Pyright). Would there by any interest in allowing `ParamSpec` to stand alone in `Concatenate[int, P]` for varargs that don't need to be captured? PEP 612 contains this sole example of a (seemingly valid) solitarily `ParamSpec` in `Concatenate`: def expects_int_first(x: Callable[Concatenate[int, P], int]) -> None: ... Was it overlooked or did implementers believe it shouldn't be allowed? Best D Sent with ProtonMail Secure Email.