
Also, the only realistic use case that I have ever heard people ask for is "NOT str", as in "any sequence except str".
Found this thread while trying to address some of the "type: ignore" comments in pandas. A couple of examples where this feature would be useful: A bunch of functions are just optimized isinstance checks where we'd like to overload: ``` @overload def is_float(x: float | np.floating) -> True: ... @overload def is_float(x: AnythingBut[float | np.floating]) -> False: ... ``` Similar but a bit more complicated, we have a `def find_common_type(types: list[np.dtype | ExtensionDtype]) -> np.dtype | ExtensionDtype:` where we'd like an overload to declare `def find_common_type(types: list[np.dtype]) -> np.dtype`. AFAICT we can't do this without an AnythingBut[X] annotation.