message: Avoid two stack entries for eval_function
  Summary: The contract is that invoke must put on its own call stack, so don't do it in advance two. Previously eval_function resulted in the function entry appearing twice.
diff: @@ -143,15 +143,13 @@ impl<'v, 'a> Evaluator<'v, 'a> {
  positional: &[Value<'v>],
  named: &[(&str, Value<'v>)],
  ) -> anyhow::Result<Value<'v>> {
  - self.with_call_stack(function, None, |eval| {
  - let mut invoker = function.new_invoker(eval)?;
  + let mut invoker = function.new_invoker(self)?;
  for x in positional {
  - invoker.push_pos(*x, eval);
  + invoker.push_pos(*x, self);
  }
  for (s, x) in named {
  - invoker.push_named(s, eval.heap().alloc(*s).get_hashed()?, *x, eval);
  + invoker.push_named(s, self.heap().alloc(*s).get_hashed()?, *x, self);
  }
  - invoker.invoke(function, None, eval)
  - })
  + invoker.invoke(function, None, self)
  }
  }
  