Let's Build a Compiler (in Scala)