anchor.diff:  (defclass-export data-path ()
     ((dirname :initarg :dirname
               :accessor dirname
  -            :type string
  -            :initform nil
  +            :type (or string pathname)
  +            :initform ""
               :documentation "The directory of `basename'.")
      (basename :initarg :basename
                :accessor basename
  -             :type string
  +             :type (or string pathname)
                :initform ""
                :documentation "The basename of data-path.
   It can be appended with an extension if necessary.
  
positive.code: 
  (export-always 'expand-default-path)
  (declaim (ftype (function (data-path &key (:root string)) (or string null)) expand-default-path))
  (defun expand-default-path (path &key (root (namestring (or (dirname path)
                                                              (uiop:xdg-data-home +data-root+)))))
    "Derive file from command line option or PATH.
  If PATH `ref' is specified in the `:with-path' command line option, use it in
  place of PATH `basename'.
  
negative.code: - Otherwise expand to 'ROOT/basename.lisp' or 'ROOT/basname' if the basename
    already contains a period."
    (let ((name (match (find-ref-path (ref path))
                  (nil (namestring (basename path)))
                  (m m))))
      (cond
        ((uiop:emptyp name)
         root)
        ((search "/" name)
         name)
        (t
         (let ((fullname (str:concat root "/" name)))
           (unless (search "." name)
             (setf fullname (str:concat fullname ".lisp")))
           fullname)))))
  