don't state that `type[Callable]` is invalid by KotlinIsland · Pull Request #2207 · python/typing
I think it's also important to mention that Callable is very much not a normal class in the standard library: python/cpython@
b28e5f5/Lib/typing.py#L2830
I don't think that this point, specifically, is a very strong argument against this change. While it's true that typing.Callable is not a class at runtime, this is also true for typing.Iterable, typing.Collection, typing.Container, etc... many classes that typeshed pretends are defined in the typing module are actually defined as classes in the collections.abc module at runtime, with only aliases existing in the standard library's typing.py.
I find the fact that Callable has unique semantics in type expressions and cannot be expressed as a Protocol to be much stronger reasons for continuing to describe it as a special form in the spec. That doesn't necessarily mean that it can't be considered a "class-like" special form that is an instance of type.
If we want to consider type[Callable] a valid type annotation, we should state clearly what that means and what the semantics should be.