String rewriting and Knuth-Bendix completion in Haskell | Hacker News Reader