anchor.diff:  
   (defun %struct-getters (name fields)
     (with-queue form
  -    (do ((i fields (cdr i))
  +    (do ((i fields .i)
   	     (index 1 (1+ index)))
   	    ((endp i) (queue-list form))
  -      (enqueue form (%struct-single-get name (%struct-field-name (car i)) index)))))
  +      (enqueue form
  +			   (%struct-single-get name (%struct-field-name i.) index)))))
   
   (defun %struct-p (name)
  -  (with (sym (%struct-p-symbol name))
  +  (let sym (%struct-p-symbol name)
       `(defun ,sym (arr)
          (and (arrayp arr) (eq (elt arr 0) ,name)))))
   
  
positive.code: (defun %struct-fields (name)
    (with-queue form
      (dolist (i (%struct-def name) (queue-list form))
        (enqueue form (car i)))))
  
  (defun %defstruct-expander (name &rest fields-and-options)
    "Define new structure."
  
negative.code: (defun %struct-getter-symbol (name field)
    (make-symbol (string-concat (symbol-name name) "-" (symbol-name field))))
  
  (defun %struct-single-get (name field index)
    (let sym (%struct-getter-symbol name field)
      `(progn
        (defun ,sym (arr)
          (elt arr ,index))
  