Simple lexer, parser and type-checker for a subset of Haskell.