Macro Defmetaclass

Part of:

package mop-utils
( defmetaclass &rest < args > )
Macro for easy metaclass definition. It takes all the options
DEFCLASS takes, plus the following:

- :VALIDATE-SUPERCLASSES, classes for which VALIDATE-SUPERCLASS
methods (with METACLASS in the subclass position) will be created.

- :VALIDATE-SUBCLASSES, a list of classes for which
VALIDATE-SUPERCLASS methods (with METACLASS in the superclass
position) will be created.

- :SLOT-FIXTURES, a list of classes from which
EFFECTIVE-SLOT-DEFINITION and DIRECT-SLOT-DEFINITION should
inherit. This class should already exist at the time DEFMETACLASS is
called.

DEFMETACLASS apart from creating the metaclass defines some additional things:

- The classes <METACLASS>-DIRECT-SLOT-DEFINITION and
<METACLASS>-EFFECTIVE-SLOT-DEFINITION (where <METACLASS> should be
substituted by METACLASS), which inherit from the fixtures and
STANDARD-CLASS-DIRECT-SLOT-DEFINITION and
STANDARD-CLASS-EFFECTIVE-SLOT-DEFINITION, respectively.

- The methods DB-CLASS-{DIRECT|EFFECTIVE}-SLOT-DEFINITION.