return rec.elm(idx);
} else if ((one=upd.testTuple()) != null) {
if (one.arity() == 2) {
ESmall eidx = one.elm(1).testSmall();
incr = one.elm(2).testInteger();
if (eidx == null || eidx.value > rec.arity() || incr == null) return null;
int idx = eidx.value;
rec = update(rec, idx, incr);
if (rec == null) return null;
map = map.assoc(get_key(rec), rec);
set(map);
return rec.elm(idx);
} else if (one.arity() == 4){
ESmall eidx = one.elm(1).testSmall();
incr = one.elm(2).testInteger();
EInteger threshold = one.elm(3).testInteger();
EInteger setvalue = one.elm(4).testInteger();
if (eidx == null || eidx.value > rec.arity() || incr == null
|| threshold == null || setvalue == null) return null;