util:: lev_distance:: find_best_match_for_name
pub fn find_best_match_for_name<'a, T>(
) -> Option<Symbol> where
T: Iterator<Item = &'a Symbol>,
Finds the best match for a given word in the given iterator
As a loose rule to avoid the obviously incorrect suggestions, it takes an optional limit for the maximum allowable edit distance, which defaults to one-third of the given word.
Besides Levenshtein, we use case insensitive comparison to improve accuracy on an edge case with a lower(upper)case letters mismatch.