Evaluate after let declaration

Resolves #615.

This is one option anyway, the disadvantage being it prints `Unit {}` after every `let` now. Thoughts?
`createTemporaryModule` uses the state doesn't it? By doing `itValue = foldl (\x f -> f x) value lets`.