anchor.diff:  
   (define-collect-defines-aux (define var . val)
     (rplaca cell (cons (list var) (car cell)))
  -  (collect-defines-aux-2 form cell))
  +  (collect-defines-aux-recurse form cell))
   
   (define-collect-defines-aux (begin attrs . body)
     (let* ((cell (cons () body)))
  
positive.code:   (mark-variable varrec 0))
  
  (define-classify-variables (define varrec . val)
    (classify-variables-2 form)
    (mark-variable varrec 2))
  
  (define (classify-block-variables varrecs init form)
    (dolist (varrec varrecs)
      (varrec-attr-set! varrec 'state init))
    (classify-variables-2 form)
    (dolist (varrec varrecs)
      (varrec-attr-set! varrec 'written
                        (= 2 (varrec-attr-remove varrec 'state)))))
  
negative.code: 
  (define-normalize-lambdas (lambda params . body)
    (rplaca (cdr form) (acons 'name false (normalize-lambda-params params)))
    (normalize-lambdas-recurse form))
  
  (define-normalize-lambdas (define var . val)
    (normalize-lambdas-recurse form)
    (when (and val (eq (caar val) 'lambda))
      ;; propogate variable name into the lambda, as a hint for readable
      ;; code generation
  