+ (unless (ignore-errors (find-description (class-name class)))
+ (ensure-class (defining-description (class-name class))
+ :direct-superclasses (list desc-class)
+ :metaclass 'standard-description-class))
+ (find-description name)))
+
+
+(defclass described-class ()
+ ())
+
+(defmethod validate-superclass
+ ((class described-class)
+ (superclass standard-class))
+ t)
+
+(defmethod initialize-instance :after ((class described-class) &rest initargs &key (direct-superclasses '()))
+ (declare (dynamic-extent initargs))
+ (finalize-inheritance class)
+ (ensure-description-for-class class))
+
+
+(defmethod reinitialize-instance :after ((class described-class) &rest initargs &key (direct-superclasses '() direct-superclasses-p))
+ (declare (dynamic-extent initargs))
+ (finalize-inheritance class)
+ (ensure-description-for-class class))
+
+