var=old
f() { echo "var=$var"; }
# bash: POSIXLY_CORRECT behavior is to "leak" new variable values
# out of function invocations (similar to "special builtins" behavior);
# but in "bash mode", they don't leak.
# hush does not "leak" values. ash used to, but now does not.
var=val f
echo "var=$var"