The basic Visi parser is ported from Haskell to Scala.
I used the Parboiled parser because it has much better performance and location capturing capabilities than does Scala's built in parser combinators.
The basic type checker is working and most of the test cases from Haskell are passing. I haven't ported all the tests, but the ones I have ported are working.
In addition to having a running typer, Visi also calculates the dependency graph for each node in the typed lambda calculus. This will come in handy.
I took a brief detour through Clojure and, while I'd love the opportunity to write in Clojure, my brain works best in Scala because I know most of the potholes and craters in Scala.