anchor.diff:              (setf env-object (svref env-object 0)))))))
     (format t "Unknown variable id ~S." id))
   
  +(defun debugger-write-variable (frame id value)
  +  (let* ((fn (function-from-frame frame))
  +         (info (function-pool-object fn 1))
  +         (var-id 0))
  +    (when (and (listp info) (eql (first info) :debug-info))
  +      (dolist (var (third info))
  +        (when (eql (incf var-id) id)
  +          (write-frame-slot frame (second var) value)
  +          (return-from debugger-write-variable (first var))))
  +      (when (fourth info)
  +        (let ((env-object (read-frame-slot frame (fourth info))))
  +          (dolist (level (fifth info))
  +            (do ((i 1 (1+ i))
  +                 (var level (cdr var)))
  +                ((null var))
  +              (when (and (car var)
  +                         (eql (incf var-id) id))
  +                (setf (svref env-object i) value)
  +                (return-from debugger-write-variable (car var))))
  +            (setf env-object (svref env-object 0)))))))
  +  (format t "Unknown variable id ~S." id))
   
   (defun enter-debugger (condition)
     (with-standard-io-syntax
  
positive.code:                             (dolist (v result)
                                (fresh-line)
                                (write v)))))
                         (t (format t "Unknown command ~S~%" form))))
                      (t (let ((result (multiple-value-list (let ((- form))
                                                              (eval form)))))
  
negative.code: 
  (defun read-frame-slot (frame slot)
    (memref-t (memref-unsigned-byte-64 (third frame) -1) (- (1+ slot))))
  
  (defun write-frame-slot (frame slot value)
    (setf (memref-t (memref-unsigned-byte-64 (third frame) -1) (- (1+ slot)))
          value))
  
  (defun show-debug-frame ()
    (format t "Frame ~D(~X): ~S~%"
  