anchor.diff:  
   (define-walker eliminate-defines () ignore-domain)
   
  -(define-eliminate-defines (begin varrecs . body)
  -  (dolist (varrec varrecs) (varrec-attr-set! varrec 'value false))
  -  (eliminate-defines-forms body))
  -
  -(define-eliminate-defines (lambda attrs body)
  -  (dolist (varrec (attr-ref attrs 'params))
  -    (varrec-attr-set! varrec 'value false))
  -  (eliminate-defines-recurse body))
  -
   (define-eliminate-defines (define varrec . val)
     (rplaca form 'set!)
  -  (if (null? val)
  +  (when (null? val)
       (if (varrec-written? varrec)
           ;; we clear written vars at the start of the begin in the
           ;; introduce-boxes phase, so these defines can be eliminated
           (overwrite-form form (quoted-unspecified))
  -        (rplacd (cdr form) (quoted-unspecified)))
  -    (when (and (not (varrec-written? varrec))
  -               (or (eq? 'lambda (caar val)) (eq? 'quote (caar val))))
  -      (varrec-attr-set! varrec 'value (car val))))
  +        (rplacd (cdr form) (quoted-unspecified))))
     (eliminate-defines-recurse form))
   
   ;;; Make the closure list for each lambda (i.e. variables unbound
  
positive.code: ;;; have to rename the original parameter.  This involves wrapping the
  ;;; lambda body with a begin form.
  
  (define (varrec-boxed? varrec)
    ;; Always look to the origin varrec for the boxed attribute
    (varrec-attr (or (varrec-attr varrec 'origin) varrec) 'boxed))
  
  (define-walker introduce-boxes () ignore-domain)
  
  
negative.code:       (varrec-attr-set! varrec 'mode mode)
        (set! index (1+ index)))))
  
  (define-codegen-sections (begin varrecs . body)
    (dolist (varrec varrecs) (varrec-attr-set! varrec 'lambda-label false))
    (codegen-sections-forms body out))
  
  (define-codegen-sections (lambda attrs body)
    (let* ((label (gen-label))
           (self-varrec (attr-ref attrs 'self)))
      (form-attr-set! form 'label label)
      (when (and self-varrec (not (varrec-written? self-varrec)))
        (varrec-attr-set! (varrec-attr self-varrec 'origin) 'lambda-label label))
      (dolist (varrec (attr-ref attrs 'params))
        (varrec-attr-set! varrec 'lambda-label false))
  
      (codegen-sections body out)
  
      (emit out ".text")
  