I'm -1 on both `any` and `callable`. If the Python grammar distinguished clearly between type expressions and value expressions like most other languages, this would be feasible because the meaning of `any` and `callable` would be unambiguous from its syntactical position. However, there are many places in Python where a value expression is treated by a type checker as though it is a "type context". This includes cases like base classes in class declarations, bounds and constraints in TypeVar declarations, arguments to NewType, isinstance, cast, etc. Because of these cases, `any` and `callable` would be treated as their traditional builtin meaning by the runtime, and their meaning would be ambiguous for type checkers. For this reason, I don't this proposal would work. Or it would require that the lowercase forms of `any` and `callable` would be usable only in certain places where type expressions are allowed, and developers would need to know which locations were OK and which were problematic. That would be really confusing. I agree with Shantanu that it's not a goal to cover all typing use cases without imports, and I'm fine with requiring developers to import `Callable` and `Any`. -Eric -- Eric Traut Contributor to Pylance & Pyright Microsoft