I touched on this a bit in my earlier messages in the thread. The type
statement adds two unique capabilities: lazy evaluation and the use of unambiguously scoped type variables. Both of those capabilities don’t play well with use in isinstance()
.
I don’t particularly like the fact that isinstance()
works with unions, but removing that behavior would be a compatibility break and I don’t see a strong case for doing so.