anchor.diff:                              (format t "At outermost frame!~%")
                               (setf *current-debug-frame* (nth (1- (first *current-debug-frame*)) frames)))
                           (show-debug-frame))
  -                       (:current (show-debug-frame))
  +                       (:bottom
  +                        (setf *current-debug-frame* (first frames))
  +                        (show-debug-frame))
  +                       (:top
  +                        (setf *current-debug-frame* (first (last frames)))
  +                        (show-debug-frame))
  +                       (:current
  +                        (show-debug-frame))
                          (:vars
                           (show-debug-frame)
                           (debugger-show-variables *current-debug-frame*))
  
positive.code: (defvar *current-debug-frame* nil)
  
  (defun function-from-frame (frame)
    (%frame-function (second frame)))
  
  (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 ()
  
negative.code:                           (finish-output)
                            (setf value (eval (read)))
                            (debugger-write-variable *current-debug-frame* slot value)))
                         (:bt
                          (backtrace))
                         (t (format t "Unknown command ~S~%" form))))
                      (t (let ((result (multiple-value-list (let ((- form))
                                                              (eval form)))))
  