The aim is to separate lexing from the existing parser, which should make
indentation processing a good deal less painful.
The lexer is compiled using Alex, which generates Haskell code from the .x
file; it's not particularly elegant but the input syntax is nice and it does
seem to work well.