As Mariano writes, most applications implement a message #isAbstract themselves with the exact semantics they require. I don't think a generic message in Behavior is really useful, especially if it is not used by the core system.
In that case, we could have isAbstractClass or something else. I feel this information is important.
What would be your isAbstract be useful for? - SUnit will still have to implement its own #isAbstract to decide if a class should be runnable or just provide test templates. - Pier will still have to implement its own #isAbstract to decide if a class should show up in the GUI. - Magritte will still have to implement its own #isAbstract to decide if an arbitrary class can be instantiated from the GUI. - ...
 If the class contains any method that sends #subclassResponsibility, the we consider the class as abstract.
I am not sure what "contains" means in that context. But apparently, the definition you gave is not sufficient. The presence of subclassResponsibility need to be checked in the methods obtained from superclasses. (the code I gave in my previous email does not satisfy this although).
contains = (I assume) in the set of understood selectors (that includes superclasses) Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch