type inference starting to work, lambda calculus works, but compiling it requires closures