anchor.diff:                               :width (display-width)
                                :height (display-height)
                                :id/frame-table id/frame-table
  -                             :current %frame
  -                             :buffer-list-map (make-hash-table))))
  +                             :current %frame)))
         vf)))
  -
  -(defun all-buffer-list ()
  -  (remove-duplicates
  -   (loop
  -     :for k :being :each :hash-key :of *virtual-frame-map*
  -     :using (hash-value vf)
  -     :append (loop
  -               :for k :being :each :hash-key :of (virtual-frame-buffer-list-map vf)
  -               :using (hash-value buffer-list)
  -               :append buffer-list))))
   
   (defun find-unused-frame-id (virtual-frame)
     (position-if #'null (virtual-frame-id/frame-table virtual-frame)))
  
positive.code:     :initarg :current
      :accessor virtual-frame-current
      :type %frame)
     (buffer-list-map
      :initarg :buffer-list-map
      :accessor virtual-frame-buffer-list-map)
     (display-width
      :initarg :width
      :accessor virtual-frame-width)
  
negative.code:          (num (num-frames vf)))
      (when (= num 1)
        (editor-error "cannot delete this virtual frame"))
      (free-frame vf (virtual-frame-current vf))
      (let ((%frame (search-previous-frame vf (virtual-frame-current vf))))
        (setf (virtual-frame-current vf) %frame)
  