A lexical analyser generator for Haskell