anchor.diff:            (make-string (max 1 (- 40 (length (ospama:name pkg)))) :initial-element #\ )
             (ospama:synopsis pkg)))
   
  +(defmethod object-string ((output ospama:os-package-output))
  +  (format nil "~a:~a"
  +          (ospama:name (ospama:parent-package output))
  +          (ospama:name output)))
  +(defmethod object-display ((output ospama:os-package-output))
  +  (let ((pkg (ospama:parent-package output)))
  +    (format nil "~a:~a~a~a"
  +            (ospama:name pkg)
  +            (ospama:name output)
  +            (make-string (max 1 (- 40 (length (ospama:name pkg)))) :initial-element #\ )
  +            (ospama:synopsis pkg))))
  +
   (defun os-package-suggestion-filter ()
     (echo "Loading package database...")
     (let* ((all-packages (ospama:list-packages)))
       (echo "")
       (lambda (minibuffer)
         (fuzzy-match (input-buffer minibuffer) all-packages))))
  +
  +(defun os-package-output-suggestion-filter ()
  +  (echo "Loading package database...")
  +  (let* ((all-outputs (ospama:list-package-outputs)))
  +    (echo "")
  +    (lambda (minibuffer)
  +      (fuzzy-match (input-buffer minibuffer) all-outputs))))
   
   (defun os-installed-package-suggestion-filter (profile)
     (let* ((installed-packages (ospama:list-packages profile)))
  
positive.code:                     :multi-selection-p t)))
      (%describe-os-package packages)))
  
  (defun format-command-stream (process-info callback)
    (loop for object = (read-line (uiop:process-info-output process-info) nil :eof)
          until (eq object :eof)
  
negative.code: 
  ;; TODO: Parse Texinfo for Guix descriptions.
  ;; TODO: Add commands:
  ;; - show-deps, show-reverse-deps (when minibuffer has actions)
  