anchor.diff:          :initform "")
      (title :initarg :title
             :accessor title
  -          :type string)
  +          :type string
  +          :initform "")
      (annotation :initarg :annotation
                  :accessor annotation
  -               :type string)
  +               :type string
  +               :initform "")
      (date :initarg :date
            :accessor date
  -         :type string
  -         :initform (local-time:format-timestring nil (local-time:now))
  -         ;; We don't store the local-time:timestamp because it's too verbose
  -         ;; when serialized.
  -         :documentation "The date must be parsable by `local-time:parse-timestring'.")
  +         :type local-time:timestamp
  +         :initform (local-time:now))
      (tags :initarg :tags
            :accessor tags
            :type list
  +         :initform nil
            :documentation "A list of strings.")
  -   (shortcut :initarg :shortcut ; TODO: Add support for short-cuts in `parse-url'.
  +   (shortcut :initarg :shortcut ; TODO: Add support for shortcuts in `parse-url'.
                :accessor shortcut
                :type string
  +             :initform ""
                :documentation "
   This allows the following URL queries from the minibuffer:
   
  
positive.code:                                           :direction :input
                                            :if-does-not-exist nil)
                        (when file
                          ;; We need to make sure current package is :next so that
                          ;; symbols a printed with consistent namespaces.
                          (let (;; (*print-case* :downcase) ; TODO: Wait until prevalence fully supports it.
                                (*package* *package*))
                            (in-package :next)
                            (s-serialization:deserialize-sexp file))))))
            (when data
              (echo "Loading ~a bookmarks." (length data))
              (setf (slot-value *interface* 'bookmarks-data) data)))
  
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*)))))
  
  