anchor.diff:        (set-url-buffer url buffer)
         (set-active-buffer *interface* buffer))))
   
  +(defmethod get-active-buffer-index ((active-buffer buffer) buffers)
  +  (position active-buffer buffers :test #'equal))
  +
  +(define-command switch-buffer-previous ()
  +  "Switch to the previous buffer in the list of *buffers*, if the
  +first item in the list, jump to the last item."
  +  (let* ((buffers (alexandria:hash-table-values (buffers *interface*)))
  +         (active-buffer (active-buffer *interface*))
  +         (active-buffer-index (get-active-buffer-index active-buffer buffers)))
  +    (if (equalp 0 active-buffer-index)
  +	(set-active-buffer *interface* (nth (- (length buffers) 1) buffers))
  +	(set-active-buffer *interface* (nth (- active-buffer-index 1) buffers)))))
  +
  +(define-command switch-buffer-next ()
  +  "Switch to the next buffer in the list of *buffers*, if the last
  +item in the list, jump to the first item."
  +  (let* ((buffers (alexandria:hash-table-values (buffers *interface*)))
  +         (active-buffer (active-buffer *interface*))
  +         (active-buffer-index (get-active-buffer-index active-buffer buffers)))
  +    (if (< (+ active-buffer-index 1) (length buffers))
  +        (set-active-buffer *interface* (nth (+ active-buffer-index 1) buffers))
  +        (set-active-buffer *interface* (nth 0 buffers)))))
  +
   (defmethod add-mode ((buffer buffer) mode &optional (overwrite nil))
     (let ((found-mode (gethash (class-name (class-of mode)) (modes buffer))))
       (when (or (not found-mode) (and found-mode overwrite))
  
positive.code:                                 new-buffer
                                  (buffer-set-url *default-new-buffer-url*))))
  
  (define-command delete-buffer ()
    "Delete the buffer via minibuffer input."
    (with-result (buffer (read-from-minibuffer
  
negative.code:   (window-set-active-buffer *interface*
                              (view *active-buffer*)
                              (window-active *interface*)))
  