So I have another idea. Not sure if this should hold up PEP 613 or be a separate one or if it's just silly.

In mypy (not sure about pyre), if you write

T = TypeVar('T')
A = List[T]

then A becomes a *parametrized* type and must itself be instantiated as A[some_type], e.g. A[int] will mean List[T]. (Plain A means List[Any], unfortunately, for historic reasons.)

It's easy to forget this behavior and accidentally end up with an unintentional List[All]. Perhaps we could reinforce it by requiring

A: TypeAlias[T] = List[T]

and otherwise reject type vars in the RHS?

--Guido van Rossum (