The SymSpell algorithm pre-computes all deletions within fixed distance of a source dictionary. Leveraging a symmetry in edit distance, this can massively restrict the search space for spell checking words.
This project implements the algorithm in Haskell, where it is much less verbose than the original C#.
To compile with Stack:
stack build
You can then bring up a simple REST API with:
stack exec symspell-server
To issue a request:
curl -d '{"word":"hamburgre"}' -H 'Content-type: application/json' -X POST localhost:8080/top