anchor.diff:                ""
                 (str:concat "[" (shortcut entry) "] "))
             (url entry)
  -          (title entry)
  +          (if (str:emptyp (title entry))
  +              ""
  +              (title entry))
             (if (tags entry)
                 (format nil " (~{~a~^, ~})" (tags entry))
                 "")))
   
   (defun equal-url (url1 url2)
  -  "Entries are equal if the hosts and the paths are equal.
  +  "URLs are equal if the hosts and the paths are equal.
   In particular, we ignore the protocol (e.g. HTTP or HTTPS does not matter)."
     (let ((uri1 (quri:uri url1))
           (uri2 (quri:uri url2)))
  
positive.code: (defun tag-completion-filter ()
    (let ((tags (delete-if #'null
                           (apply #'append
                                  (mapcar (lambda (b) (when (slot-boundp b 'tags) (tags b)))
                                          (bookmarks-data *interface*))))))
      (lambda (input)
        (fuzzy-match input tags))))
  
negative.code:                            (setf entry b)))
                         (bookmarks-data *interface*)))
        (unless entry
          (setf entry (make-instance 'bookmark-entry
                                     :url url)))
        (unless (str:emptyp title)
          (setf (title entry) title))
        (setf tags (delete-duplicates (append (tags entry) tags)
                                      :test #'string=))
        (setf (tags entry) (sort tags #'string<))
        (push entry (bookmarks-data *interface*)))))
  
  