anchor.diff:      `(progn
         ,(%struct-make name flds opts)
         ,(%struct-p name)
  -      ,@(%struct-getters name flds))))
  +      ,@(%struct-getters name flds)
  +      (defmacro ,(make-symbol (string-concat "WITH-" (symbol-name name))) (s &rest body)
  +		 `(with-struct ,,name ,s ,@body)))))
  
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: (defun %struct-getters (name fields)
    (with-queue form
      (do ((i fields (cdr i))
  	     (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)
  