static L mapCodeTokens(O f, L l) { L out = emptyList(l); for i over l: { O o = l.get(i); out.add(odd(i) ? callF(f, o) : o); } ret out; } static L mapCodeTokens(L l, O f) { ret mapCodeTokens(f, l); } static LS mapCodeTokens(LS tok, IF1 f) { ret mapCodeTokens(tok, (O) f); } static LS lambdaMapLike mapCodeTokens(IF1 f, LS tok) { ret mapCodeTokens(tok, f); }