Evaluate after let declaration

Resolves #615.

This is one option anyway, the disadvantage being it prints `Unit {}` after every `let` now. Thoughts?
Why bother using `modify` here? Nothing below uses the new state...

Seems simpler to just `put` in the `Right` branch.