Facilities for manipulating Haskell source code: an abstract syntax,
lexer, parser and pretty-printer.