// f : L -> L or L -> void static L xtok_recurse(O f, L l) { l = or((L) callF(f, l), l); for (int i = 1; i < l(l); i += 2) { O o = l.get(i); if (o instanceof L) l.set(i, xtok_recurse(f, (L) o)); } ret l; }