!7 static bool tok_isSingleTypeArg(L tok, int iOpeningBracket) { int j = tok_findEndOfTypeArg(tok, iOpeningBracket); print("j: " + sfu(subList(tok, j))); ret neqGet(tok, j, ","); } svoid tok_typeAA(L tok, Set pairClasses) { int n = l(tok)-6; bool change = false; for (int i = 1; i < l(tok); i += 2) { if (!(eq(get(tok, i+2), "<") && contains(pairClasses, tok.get(i)))) continue; if (tok_isSingleTypeArg(tok, i+2)) { int j = findEndOfTypeArgs(tok, i+2)-1; S type = joinSubList(tok, i+4, j); replaceTokens_reTok(tok, i+4, j, type + ", " + type); change = true; } } } p-exp { for (S s : ll("Pair p;", "Pair p;", "Pair> p;")) { L tok = javaTok(s); tok_typeAA(tok, lithashset("Pair")); print(join(tok)); } }