// Using manual implementations of Uniplate so that we can update the old Rc<RefCell<<>>> with the
// reachable via Uniplate, the one in its Submodel. The SymbolTable implementation doesn't return
let (symtab_tree, symtab_ctx) = <SymbolTable as Biplate<Expression>>::biplate(&symtab_ptr);
// Let the atom tree be a Tree::Many where each element is the result of running Biplate<Atom>::biplate on an expression in the expression list.
let (f2_tree, f2_ctx) = <SymbolTable as Biplate<Comprehension>>::biplate(&self.symbols());