anchor.diff:  (defun completion-hypheen (name list &key key)
     (completion name list :test #'completion-test :separator "-" :key key))
   
  -(defun completion-file (str directory)
  +(defun completion-file (str directory &key (ignore-case *file-completion-ignore-case*))
     (setf str (expand-file-name str directory))
     (let* ((dirname (directory-namestring str))
  -         (files (mapcar #'namestring (list-directory dirname))))
  +         (files (mapcar #'namestring (list-directory dirname)))
  +         (test-fn (alexandria:rcurry #'completion-test ignore-case)))
       (let ((strings
               (loop
                 :for pathname :in (directory-files str)
  
positive.code:                   (return nil)))
          :finally (return t)))
  
  (defun completion-test (x y)
    (and (<= (length x) (length y))
         (string= x y :end2 (length x))))
  
  (defun %comp-split (string separator)
    (let ((list nil) (words 0) (end (length string)))
  
negative.code:               :append
                   (completion (enough-namestring str dirname)
                               files
                               :test test-fn
                               :separator "-."
                               :key #'(lambda (path)
                                        (enough-namestring path dirname))))))
  