Learning Haskell by building a interpreter of scheme
Starting from tokenizer and parser, the interpreter is going to include syntax tree generation, top-down parsing and evaluating.
Probably also going to implement a backend: generating an IR (LLVM?) or machine code.