static LS ai_turnCertainWordsIntoUniqueDollarVars(Set wordsToTransform, LS tok) { MultiSet ms = ciMultiSet(); ret mapWithIndex(tok, (t, i) -> odd(i) && contains(wordsToTransform, t) ? "$" + t + emptyIfOne(ms.add(t)) : t); } sS ai_turnCertainWordsIntoUniqueDollarVars(Set wordsToTransform, S s) { ret join(ai_turnCertainWordsIntoUniqueDollarVars(wordsToTransform, javaTokWithBrackets(s))); }