anchor.diff:      (echo "")
       (lambda (minibuffer)
         (fuzzy-match (input-buffer minibuffer) all-packages))))
  +
  +(defun os-manifest-suggestion-filter ()
  +  (let* ((all-manifests (ospama:list-manifests)))
  +    (lambda (minibuffer)
  +      (fuzzy-match (input-buffer minibuffer) all-manifests))))
   
   (defun os-package-output-suggestion-filter ()
     (echo "Loading package database...")
  
positive.code: (define-mode os-package-manager-mode ()
    "Mode for package management."
    ((current-process-info nil
  
                           :type (or null uiop/launch-program::process-info))))
  
  (define-command cancel-package-operation ()
    "Terminate the package manager process in the current buffer."
  
negative.code:                     :multi-selection-p t)))
      (operate-os-package "Uninstalling packages..." #'ospama:uninstall profile packages)))
  
  (define-command install-package-manifest ()
    "Install select manifest to a profile."
    (assert-package-manager)
    (let* ((profile (prompt-minibuffer
                     :suggestion-function (os-profile-suggestion-filter)
                     :input-prompt "Target profile"))
           (manifest (prompt-minibuffer
                      :suggestion-function (os-manifest-suggestion-filter)
                      :input-prompt "Manifest")))
      (operate-os-package "Installing package manifest..." #'ospama:install-manifest profile manifest)))
  
  ;; TODO: Parse Texinfo for Guix descriptions.
  ;; TODO: Add commands:
  ;; - show-deps, show-reverse-deps (when minibuffer has actions)
  