static Collection ai_powerWordsExpansions(ParsedPowerWords ppw, S... words) { if (ppw == null) null; Set seen = ciSet(); new LS out; LPair equations = ai_parsedPowerWordEquations(ppw); while licensed { bool change = false; fOr (Pair eq : equations) { if (containsAll(seen, eq.lhs)) for (S s : eq.rhs) if (seen.add(s)) { out.add(s); set change; } } if (!change) break; } ret out; }