Selector columnSel = selectorExprs[lastSel].executeSelector(frame);
while (true) {
try {
return update((RArray) lhs, (RArray) rhs, columnSel);
} catch (SpecializationException e) {
RAny index = columnSel.getIndex();
SelectorNode newSelector = Selector.createSelectorNode(ast, subset, index, selectorExprs[lastSel].child, false, columnSel.getTransition());
selectorExprs[lastSel].replace(newSelector);
assert Utils.check(selectorExprs[lastSel] == newSelector);
columnSel = newSelector.executeSelector(index);
if (DEBUG_UP) Utils.debug("Column selector changed...");