factored out env copy
copy or freeze env to make delayed eval more transparent