Lexical scoping

The following now works, since the inner fn closes over the environment of the outer fn, rather than failing with "a is undefined".

```lisp
(def curried-add (fn (a) (fn (b) (+ a b))))
((curried-add 1) 2)
```