// first file is assumed to be LHS static Map lcMergeStringsNotOccurringOnLHS(Map encodings) { Set lhs = asSet(firstValue(encodings)); ret mapValues(encodings, l -> { if (l == firstValue(encodings)) ret l; l = cloneList(l); int i = 0; while (i < l(l)-1) { int j = i; while (j < l(l) && !lhs.contains(l.get(j))) ++j; if (j > i+1) replaceSublist(l, i, j, ll(joinSubList(l, i, j))); i++; } ret l; }); }