anchor.diff:                 (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))))))
  +                                 (first args))))
  +            (t
  +             (push (cons option-name args) class-options))))
       (setf slots
             (mapcar
              (lambda (slot-spec)
  
positive.code:                      (cdr (ensure-list name-and-options))
                       supers slots))
  
  (defun generate-defclass (class-name class-options supers slots)
    (let ((conc-name nil)
          (predicate nil)
          (predicate-forms nil))
      (loop
         for (option-name . args) in class-options
         do (ecase option-name
              (:conc-name
               (when conc-name
                 (error "Can't specify the :CONC-NAME argument more than once."))
  
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
  