Various tools to detect/correct mistakes in words

Latest on Hackage:0.3.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

PublicDomain licensed and maintained by Francesco Mazzoli (

Haskell library meant to be a set of tools to correct spelling mistakes, homophones, and OCR errors.

Sample session:

ghci> :m + Language.Distance.Search.BK
ghci> distance "foo" "bar" :: Distance DamerauLevenshtein
ghci> let bk = foldr insert empty ["foo", "foa", "fooa", "ofo", "arstu", "nana", "faa"] :: BKTree String DamerauLevenshtein
ghci> query 0 "foo" bk
[("foo",Distance 0)]
ghci> query 2 "foo" bk
[("faa",Distance 2),("foa",Distance 1),("fooa",Distance 1),("foo",Distance 0),("ofo",Distance 1)]


  • Phonetic algorithms: metaphone, double metaphone, maybe others

  • Tests and better benchmarking

  • Cost tuning when searching

comments powered byDisqus