haskell Optimized edit distances for fuzzy matching, including Levenshtein and restricted Damerau-Levenshtein algorithms. batterseapower/edit-distance