anchor.diff:        component-designator
         (list :file (sera:drop-suffix ".lisp" component-designator :test #'string-equal))))
   
  +(export-always 'define-nyxt-user-system)
   (defmacro define-nyxt-user-system (name &rest args &key depends-on components
                                      &allow-other-keys)
     "Define a user system, usually meant to load configuration files.
  
positive.code: 
  ;; TODO: Report compilation errors.
  
  (defclass nyxt-user-system (asdf:system) ()
    (:documentation "Specialized systems for Nyxt users.
  This automatically default :pathname to the `*config-file*' directory."))
  
  (defvar *nyxt-user-systems-with-missing-dependencies* '())
  
  
negative.code:      :components ,(mapcar #'ensure-component
                            components)))
  
  (export-always 'define-nyxt-user-system-and-load)
  (defmacro define-nyxt-user-system-and-load (name &rest args &key depends-on components
                                              &allow-other-keys)
    "Like `define-nyxt-user-system' but immediately call `load-system*' on the system.
  