anchor.diff:  (defun %struct? (name)
     (let sym (%struct?-symbol name)
       `(defun ,sym (x)
  -       (& (struct? x)
  +       (& (array? x)
  +          (eq 'struct (aref x 0))
             (eq ',name (aref x 1))))))
   
   (defun %struct-sort-fields (fields-and-options)
  
positive.code: 
  (defun %struct-assertion (name sym)
    (when *assert*
      `((unless (,(%struct?-symbol name) arr)
          (error ,(string-concat "In " (symbol-name sym) ": Expected a " (symbol-name name) " structure instead of ~A.") arr)))))
  
  (defun %struct-single-get (name field index)
    (let sym (%struct-getter-symbol name field)
  
negative.code:     `(defun ,sym ,(%struct-make-args fields)
         (let ,g (make-array ,(+ 2 (length fields)))
           ,@(? user-init
  	          (append type-init user-init)
  	          type-init)
  	     ,g))))
  
  