trying to get the `if` function to short circuit properly
Merge branch 'master' into short-circuiting-if
evaluating thunks in the correct environment