anchor.diff:  
   (define (varrec-written? varrec)
     (eq? 'written (varrec-attr varrec 'access)))
  +(define (varrec-early-function? varrec)
  +  (eq? 'early-function (varrec-attr varrec 'access)))
   
   ;;; Make the closure list for each lambda (i.e. variables unbound
   ;;; within the lambda body).  After this, lambdas look like:
  
positive.code:                     (make-alloc-closure closure))))
  
  (define-decompose-lambdas (define varrec val)
    (if (and (eq? 'lambda (car val)) (not (varrec-written? varrec)))
        (decompose-define-lambda form varrec val begin)
        (decompose-lambdas val begin)))
  
  
negative.code:   (update-varrec-state varrec varrec-set!-state-table))
  
  (define-classify-variables (define varrec val)
    (let* ((lambda? (eq? 'lambda (car val)))
           (state (update-varrec-state varrec (if lambda?
                                                  varrec-define-lambda-state-table
                                                  varrec-define-state-table))))
      (classify-variables val)
      (when (= state 2) (rplaca form 'set!))
      (when lambda? (form-attr-set! val 'self varrec))))
  
  (define (classify-block-variables varrecs init form)
    (dolist (varrec varrecs)
  