anchor.diff:  (define-walker assign-offsets-aux (offset) ignore-domain)
   
   (define-assign-offsets-aux (let varrecs . body)
  -  (assign-offsets-aux-2 form (assign-varrec-offsets varrecs 'local offset)))
  +  (assign-offsets-aux-recurse form
  +                               (assign-varrec-offsets varrecs 'local offset)))
   
   (define-assign-offsets-aux (lambda attrs . body)
     (assign-varrec-offsets (attr-ref attrs 'closure) 'closure 0)
     (assign-varrec-offsets (form-attr form 'params) 'param 0)
  -  (assign-offsets-aux-2 form 0))
  +  (assign-offsets-aux-recurse form 0))
   
   (define (assign-offsets form)
     (assign-offsets-aux form 0))
  
positive.code:         ;; can be eliminated
          (overwrite-form form (quoted-unspecified))
          (rplacd (cdr form) (quoted-unspecified))))
    (eliminate-defines-2 form))
  
  ;;; Make the closure list for each lambda (i.e. variables unbound
  ;;; within the lambda body).  After this, lambdas look like:
  
negative.code:   (dolist (varrec varrecs)
      (varrec-attr-set! varrec 'boxed false)
      (varrec-attr-set! varrec 'closure-stack (acons depth varrec ())))
    (collect-closures-aux-recurse form depth closure-cell)
    (dolist (varrec varrecs)
      (varrec-attr-set! varrec 'origin false)
      (varrec-attr-remove varrec 'closure-stack)))
  