pub fn evaluate_ast( expr: &Expr, heap: Rc<RefCell<Heap>>, bindings: Rc<RefCell<HashMap<String, Value>>>, call_depth: usize, ) -> Result<Value>