I strongly disagree. TypeScript only recently added support for `in` and `out`, and the TypeScript team did so very reluctantly. They added it to accommodate some rare cases where variance inference took too long. When `in` and `out` are used in TypeScript, the compiler doesn't validate the variance because it assumes that the developer added these keywords only out of necessity for performance reasons. Python's type system doesn't allow for such complex types, so I am not concerned about performance of variance inference. Forcing users to understand variance is unnecessary when it's something that can be determined by the type checker. As a maintainer of a Python type checker, I regularly field questions from developers who are confused by the notion of variance. We should not force all developers to understand this concept when it's something that can largely be ignored. Forcing users to explicitly declare the variance does not improve readability or understandability, IMO. It just adds unnecessary complexity and cognitive burden. -Eric