anchor.diff:    (let ((x 0)
           (y 0))
       (double-setf-BAD x y (+ x 100))
  -    (assert-equal x ____)
  -    (assert-equal y ____)))
  +    (assert-equal x 100 )
  +    (assert-equal y 200 )))
   
   ;; sets sym1 and sym2 to val
   (defmacro double-setf-SAFER (sym1 sym2 val)
  
positive.code:   (let ((x 0)
          (y 0))
      (double-setf-SAFER x y (+ x 100))
      (assert-equal x ____)
      (assert-equal y ____)))
  
  
  ;; ----
  
negative.code: (defmacro log-form-with-value (&body body)
    "records the body form, and the form's return value
     to the list *log-with-value* and then evalues the body normally"
    (let ((retval2 (apply (caar body) (cdr body))))
      `(let ((logform nil)
  	   (retval ,@body))
         (push '(:form ,@body :value ,@retval2) *log-with-value*)
         retval)))
  
  
  
  