anchor.diff:                       (cdr (ensure-list name-and-options))
                        supers slots))
   
  -(defun generate-defclass (class-name class-options supers slots)
  +(defun generate-defclass (class-name options supers slots)
     (let ((conc-name nil)
           (predicate nil)
  -        (predicate-forms nil))
  +        (predicate-forms nil)
  +        (class-options '()))
       (loop
  -       for (option-name . args) in class-options
  -       do (ecase option-name
  +       for (option-name . args) in options
  +       do (case option-name
               (:conc-name
                (when conc-name
                  (error "Can't specify the :CONC-NAME argument more than once."))
  
positive.code:                (error "Can't specify the :PREDICATE argument more than once."))
               (setf predicate (if (eql t (first args))
                                   (intern (strcat class-name :-p) *package*)
                                   (first args))))))
      (setf slots
            (mapcar
             (lambda (slot-spec)
  
negative.code:                   (defmethod ,predicate ((,obj t)) nil)))
                nil))
      `(prog1
           (defclass ,class-name ,supers ,slots ,@(nreverse class-options))
         ,@predicate-forms)))
  
  ;; Copyright (c) 2002-2006, Edward Marco Baringer
  