anchor.diff:  (defun %struct-getters (name fields)
     (with-queue form
       (do ((i fields (cdr i))
  -	 (index 1 (1+ index)))
  -	((endp i) (queue-list form))
  +	     (index 1 (1+ index)))
  +	    ((endp i) (queue-list form))
         (enqueue form (%struct-single-get name (%struct-field-name (car i)) index)))))
   
   (defun %struct-p (name)
  
positive.code: (defun %struct-add-def (name def)
    (acons! name def *struct-defs*))
  
  (defun %struct-name (obj)
    (if (not (arrayp obj))
      (error "object is not a struct")
      (elt 0 obj)))
  
  (defmacro defstruct (name &rest fields-and-options)
    "Define new structure."
  
negative.code:     `(progn
        ,(%struct-make name flds opts)
        ,(%struct-p name)
        ,@(%struct-getters name flds)
        (defmacro ,(make-symbol (string-concat "WITH-" (symbol-name name))) (s &rest body)
  		 `(with-struct ,,name ,s ,@body)))))
  