anchor.diff:  
                         (setf (slot-value source 'suggestions) '())
                         (if (or (str:empty? input)
  -                              (not (functionp (filter source))))
  +                              (not (filter source)))
                             (setf (slot-value source 'suggestions) preprocessed-suggestions)
                             (dolist (suggestion preprocessed-suggestions)
                               (sera:and-let* ((processed-suggestion
  
positive.code: - (optional) current input.")
  
       (filter #'fuzzy-match
               :type (or null function)
               :documentation
               "Takes `input' and a `suggestion' and return a new suggestion, or
  nil if the suggestion is discarded.")
  
negative.code:   `(or (eql :always)
         (eql :ignore)
         (eql :confirm)))
  
  (deftype function-symbol ()
    `(and symbol (satisfies fboundp)))
  
  (defun exported-p (sym)
    (eq :external
  