anchor.diff:    (:export-accessor-names-p t)
     (:accessor-name-transformer #'class*:name-identity))
   
  +(defun guix-package-p (object)
  +  (mopu:subclassp (class-of object) 'guix-package))
  +
   (export-always 'expanded-output-p)
   (defun expanded-output-p (output)
     "Return nil if package OUTPUT location hasn't been computed."
  
positive.code:   (:accessor-name-transformer #'class*:name-identity)
    (:documentation "OS package outputs are meaningful mostly for functional
  package managers like Nix or Guix."))
  
  (detect-manager "guix" 'guix-manager)
  
  
negative.code:   (declare (ignore manager))
    (setf *guix-database* nil))
  
  (defmethod manager-install ((manager guix-manager) package-or-output-list
                              &optional profile)
    (run (append (list (path manager) "install")
                 (mapcar (lambda (package-or-output)
                           (let ((package (if (guix-package-p package-or-output)
                                              package-or-output
                                              (parent-package package-or-output)))
                                 (output (if (guix-package-output-p package-or-output)
                                              package-or-output
                                              ;; Default to first output, usually "out".
                                              (first (outputs package-or-output)))))
                             (format nil "~a@~a:~a"
                                     (name package)
                                     (version package)
                                     (name output))))
                         package-or-output-list)
                 (when profile
                   (list (str:concat "--profile=" (namestring profile)))))))
  
  