static L gazelle_reasonWithPreprocessing(S content, O... _) { S userName = stringPar userName(_); GazelleEvalContext ctx = optPar ctx(_); if (ctx == null) ctx = gazelle_stdChatEvalContext(); // preprocess L l1 = ll(GazelleTree(ctx, content)); addAll(l1, dm_gazelle_reasonAboutChatInput_v2(userName, content, paramsPlus(_, acceptablePurposes := litset('preprocess)))); // TODO: uniquify lines? if (debug) print("Got " + n_entries(l1) + " after preprocessing."); new L l2; for (GazelleTree tree : l1) addAll(l2, dm_gazelle_reasonAboutChatInput_v2(userName, tree.line, _)); ret l2; }