anchor.diff:                           env)))))
   
   (defspecial block (&environment env name &body body)
  -  (let ((env (cons (list :block name (lambda (values)
  -                                       (return-from block (values-list values))))
  -                   env)))
  +  (let ((env (sys.c::extend-environment
  +              env
  +              :blocks (list (list name (lambda (values)
  +                                         (return-from block (values-list values))))))))
       (eval-progn-body body env)))
   
   (defspecial return-from (&environment env name &optional value)
  -  (dolist (e env (error "No block named ~S." name))
  -    (when (and (eql (first e) :block)
  -               (eql (second e) name))
  -      (funcall (third e) (multiple-value-list (eval-in-lexenv value env))))))
  +  (let ((target (or (sys.c::lookup-block-in-environment name env)
  +                    (error "No block named ~S." name))))
  +    (funcall target (multiple-value-list (eval-in-lexenv value env)))))
   
   (defspecial eval-when (&environment env situation &body body)
     (multiple-value-bind (compile load eval)
  
positive.code:                                     (format t "Enter a new value (evaluated): ")
                                      (list (eval (read))))
                       :report (lambda (s) (format s "Input a new value for ~S." `(fdefinition ',name)))
                       (setf (fdefinition name) v))))
      (when (eql (first e) :functions)
        (let ((fn (assoc name (rest e))))
  	(when fn
  	  (return (cdr fn)))))))
  
  (defclass interpreted-function ()
    ((name :initarg :name :reader interpreted-function-name)
  
negative.code:       (eval-progn-body body env))))
  
  (defspecial flet (&environment env definitions &body forms)
    (multiple-value-bind (body declares)
        (sys.int::parse-declares forms)
      (let* ((functions (mapcar (lambda (def)
                                  (multiple-value-bind (name fn)
                                      (frob-flet-function def env)
                                    (list name (make-instance
                                                'lexical-variable
                                                :name name
                                                :value fn))))
                                definitions))
             (env (sys.c::extend-environment
                   env
                   :functions functions
                   :declarations declares)))
        (eval-progn-body body env))))
  
  (defspecial function (&environment env name)
    (if (sys.int::lambda-expression-p name)
  