anchor.diff:              new-val obj args ))
       ;; Check to see if this is a generic function and there are no extra
       ;; arguments (which means it might be a class slot accessor)
  -    ((and *accessor-heuristics*
  -          (not args)
  +    ((and (not args)
             (typep (symbol-function func) 'generic-function) )
  -     (let ((new (copy-instance obj)))
  -       (eval `(setf (,func ,new) ',new-val))
  -       new ))
  +     (late-class-reader-inverter func new-val obj) )
       ;; Check to see if this is likely a structure accessor function
       ((and *accessor-heuristics*
             (not args)
  
positive.code:        ;; in principle, using GET-SETF-EXPANSION.
         (eval `(setf (,func ,new-struct) ',new-val))
         new-struct ))))
  
  ;; <<>>=
  (defun modf-expand (new-val expr enclosed-obj-sym)
  
negative.code:                                    (container-arg-n expr)
                                     expr obj-sym )))
                       `(late-invert ',(car expr) ,new-val
                                     ,@(cdr
                                        (replace-nth
                                         (container-arg-n expr)
                                         expr obj-sym ))))))
                (nth (container-arg-n expr) expr)
                obj-sym )))))
  
  