anchor.diff:                                            (minibuffer (current-minibuffer))
                                             (buffer (current-buffer)))
     (let ((hint (flet ((hintp (hint-candidate)
  -                       (if (typep hint-candidate
  -                                  '(or link-hint button-hint match))
  +                       (if (typep hint-candidate '(or link-hint button-hint match))
                              hint-candidate
                              nil)))
                   (if completions
  
positive.code:                         :cleanup-function
                          (lambda ()
                            (remove-element-hints :buffer buffer))))
        (with-result (result (read-from-minibuffer minibuffer))
          (funcall function result)))))
  
  
negative.code:     (ps:chain context (query-selector selector)))
  
    (defun update-hints ()
      (ps:let* ((new-element (qs document (ps:lisp (format nil "#next-hint-~a" (identifier link-hint))))))
        (when new-element
          (unless ((ps:@ new-element class-list contains) "next-highlight-hint")
            (ps:let ((old-elements (qsa document ".next-highlight-hint")))
              (ps:dolist (e old-elements)
                (setf (ps:@ e class-name) "next-hint"))))
          (setf (ps:@ new-element class-name) "next-hint next-highlight-hint")
          (if (ps:lisp scroll)
              (ps:chain new-element (scroll-into-view
                                     (ps:create block "nearest")))))))
  
    (update-hints))
  
  