Ok, fine, let me put it THIS way. Suppose I use a parent library, and *I* don't update it.
The USER of my library provides an updated version for some unrelated reason. So, NOT testing that something is instantiable or not - JUST that it's instantiable - is bad programming... ...but requiring 8 characters to a class definition *is ok*? So the only way to deal with this is *discipline*? What you're telling me is that instead of requiring a class to be explicitly abstract or not, it's instead a requirement of *good programming* to test that something IS, in fact, ABSTRACT OR NOT? What?