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