[Eval] more accurate function evaluation - bind names to proper environments