anchor.diff:  
   (defun string-to-set (str)
     "Converts string into a set. This function is supposed to be inlined."
  -  (declare (type simple-string str)
  +  (declare (type (simple-array character) str)
              (inline length)
              (optimize (safety 0) (speed 3) (space 3)))
     (let ((result (make-hash-table)))
       (dotimes (i (length str))
  -      (setf (gethash (char str i) result) t))
  +      (let ((ch (char str i)))
  +        (if (gethash ch result)
  +            (incf (the array-index (gethash ch result)))
  +            (setf (gethash ch result) 1))))
       result))
   
   (defun intersection-length (x y)
  
positive.code: (defun damerau-levenshtein (x y)
    "This function calculates Damerau-Levenshtein distance between two given
  strings."
    (declare (type simple-string x y)
             (inline length)
             (optimize (safety 0) (speed 3) (space 3)))
    (let* ((x-len (length x))
  
negative.code: (defun levenshtein (x y)
    "This function calculates Levenshtein distance between two given
  strings."
    (declare (type (simple-array character) x y)
             (inline length)
             (optimize (safety 0) (speed 3) (space 3)))
    (let* ((x-len (length x))
  