anchor.diff:  
   It's recommended to use the `nyxt-user' package instead to create new functions,
   modes, commands, etc."))
  +#+sb-package-locks
  +(sb-ext:lock-package :nyxt)
   
   (in-package :nyxt)
   (defvar *imports* '((:trivia :match :multiple-value-match :lambda-match :guard)
  
positive.code: 
  (defmacro nyxt::use-nyxt-package-nicknames (&optional (package *package*))
    `(eval-when (:compile-toplevel :load-toplevel :execute)
       (dolist (package (trivial-package-local-nicknames:package-local-nicknames :nyxt))
         (trivial-package-local-nicknames:add-package-local-nickname (first package) (package-name (rest package))
                                                                     (find-package ,package)))))
  
  (serapeum:export-always 'define-package :nyxt)
  (defmacro define-package (name &rest options)
  
negative.code: 
  ;; Some compilers (e.g. SBCL) fail to reload the system with `defpackage' when
  ;; exports are spread around.  `uiop:define-package' does not have this problem.
  
  #+sb-package-locks
  (serapeum:eval-always
    (when (find-package :nyxt)
      (sb-ext:unlock-package :nyxt)))
  
  (uiop:define-package nyxt
    (:use #:common-lisp)
  