sS ai_expandPatternForAAndAn(S s) {
  LS tok = javaTok(s);
  if (!cicOneOf(tok, "a", "an") || contains(tok, "|")) null; // TODO: allow |
  L<Int> indices = indicesOfAnyIC(tok, "a", "an");
  int n = l(indices);
  if (n == 0) null;
  new L<S> out;
  for (L<S> l : allCombinations(rep(n, ll("a", "an")))) {
    for i over l:
      tok.set(indices.get(i), l.get(i));
    out.add(join(tok));
  }
  ret join("|", out);
}