Clean up -Wall warnings
Define `nil`
Unpack numbers recursively
Evaluate variables on lookup

I'm not absolutely sure of this. This might lead to unwanted
evaluations, and the computed value is not memoized.
Simple humble let expressions!

This certainly needs cleanup. Don't like the idea of creating a parse
tree again for recursive evaluation.