An abstract class is intended for inheritance
only, and no direct instances of this class can
be created. A concrete class can have direct instances.
Using the abstract role specifier in a defclass will cause COOL
to generate an error if make-instance
is ever called for this class. If the abstract or concrete descriptor
for a class is not specified, it is determined by inheritance.