anchor.diff:                              (structure-slots included-structure)))
                     slot-descriptions)))
   
  -)
  -
  -(defun structure-type-p (object struct-type)
  -  (when (structure-object-p object)
  -    (do ((object-type (%struct-slot object 0) (structure-parent object-type)))
  -        ((null object-type) nil)
  -      (when (eq object-type struct-type)
  -        (return t)))))
  -
  -(defun copy-structure (structure)
  -  (assert (structure-object-p structure) (structure) "STRUCTURE is not a structure!")
  -  (let* ((struct-type (%struct-slot structure 0))
  -         (n-slots (length (structure-slots struct-type)))
  -         (new (%make-struct (1+ n-slots)
  -                            (structure-area struct-type))))
  -    (setf (%struct-slot new 0) struct-type)
  -    (dotimes (i n-slots)
  -      (setf (%struct-slot new (1+ i)) (%struct-slot structure (1+ i))))
  -    new))
  -
  -(defmacro defstruct (name-and-options &rest slot-descriptions)
  -  (multiple-value-bind (name conc-name constructors predicate area copier
  -                        included-structure-name included-slot-descriptions
  -                        print-object print-function print-object-specializer)
  -      (parse-defstruct-options name-and-options)
  +(defun generate-normal-defstruct (name slot-descriptions conc-name constructors predicate area copier
  +                                  included-structure-name included-slot-descriptions
  +                                  print-object print-function print-object-specializer)
       (let* ((included-structure (when included-structure-name
                                    (get-structure-type included-structure-name)))
              (slots (compute-defstruct-slots conc-name
  
positive.code: 	       nil)
  	      ;; Default predicate.
  	      ((eq predicate-name 't)
  	       (concat-symbols name '-p))
  	      ;; Explicit predicate.
  	      (t predicate-name))
              area
  
negative.code:         (included-structure nil)
          (print-object nil)
          (print-function nil)
          (print-object-specializer nil)
          (type nil)
          (named nil))
      (if (symbolp name-and-options)
  	(setf name name-and-options)
  	(progn
  