A compiler for MiniJava, written in Scala