anchor.diff:                    (return nil)))
           :finally (return t)))
   
  -(defun completion-test (x y)
  +(defun completion-test (x y &optional (ignore-case nil))
     (and (<= (length x) (length y))
  -       (string= x y :end2 (length x))))
  +       (if ignore-case
  +           (string-equal x y :end2 (length x))
  +           (string= x y :end2 (length x)))))
   
   (defun %comp-split (string separator)
     (let ((list nil) (words 0) (end (length string)))
  
positive.code: (defun completion-hypheen (name list &key key)
    (completion name list :test #'completion-test :separator "-" :key key))
  
  (defun completion-file (str directory)
    (setf str (expand-file-name str directory))
    (let* ((dirname (directory-namestring str))
           (files (mapcar #'namestring (list-directory dirname))))
      (let ((strings
              (loop
                :for pathname :in (directory-files str)
  
negative.code: (in-package :lem)
  
  (export '(*file-completion-ignore-case*
            completion
            completion-test
            completion-hypheen
            completion-file
            completion-strings
            completion-buffer-name))
  
  (defvar *file-completion-ignore-case* t)
  
  (defun fuzzy-match-p (str elt)
    (loop :with start := 0
  