static LL ai_nlVary(S s) { LL tok = nlClassify1(s); // last element is quoted original for (int i = 1; i < l(tok); i += 2) { L l = tok.get(i); continue if l(l) <= 1; S category = first(l); S word = random(ai_texts("$X", "is a", category)); if (word != null) tok.set(i, ll(quoteUnlessQuoted(word))); } ret join(map(func(L set) { unquote(last(set)) }, tok)); }