A pure and generic implementation of finite state automata in Haskell.