void edit_env_rep::local_end (hashmap<string,tree>& prev_back) { int i=0, n=back->n; for (; i<n; i++) { list<hashentry<string,tree> > l=back->a[i]; for (; !is_nil(l); l=l->next) prev_back->write_back (l->item.key, back); } back= prev_back; }
inline void assign (string s, tree t) { tree& val= env (s); t= exec(t); if (val != t) { back->write_back (s, env); val= t; update (s); } }
inline void monitored_write_update (string s, tree t) { back->write_back (s, env); env (s)= t; update (s); }