sS combineToJavaTokPattern(S a, S b) { if (a == null || b == null) null; L tok1 = javaTok(a); L tok2 = javaTok(b); if (l(tok1) != l(tok2)) null; new L out; for i over tok1: { S t = tok1.get(i); bool eq = eq(t, tok2.get(i)); if (even(i) && !eq) null; // N tokens must be equal out.add(eq ? t : "*"); } ret join(out); } sS combineToJavaTokPattern(LS l) { ret foldl_noSeed(func(S a, S b) -> S { combineToJavaTokPattern(a, b) }, l); }