Correctly handle side effects in function bodies. Fixes #23.

Note that this temporarily breaks runtime defmacro. Patch coming soon.