You can remove the `has_env` parameter -- I think, maybe not -- if you pull the initialization of `llenv` out of `new_fn_ctxt_detailed` and into the `maybe_load_env` callback. This seems cleaner to me, less inspecting and less ifs. But it's not a big deal, and maybe it's not quite as clean as I think.