static L gazelle_reasonWithPreprocessing(S input1, O... _) { F0 contextMaker = cast assertNotNull("Need contextMaker", optPar contextMaker(_)); S userName = stringPar userName(_); bool debug = boolPar debug(_); bool debugPreprocessing = boolPar debugPreprocessing(_); Collection interpretables = gazelle_preprocess(input1, _); if (debugPreprocessing) { print("Got " + n2(interpretables, "interpretable") + "."); printIndentLines(interpretables); } Set acceptablePurposes = cast optPar acceptablePurposes(_); if (acceptablePurposes == null) acceptablePurposes = litset(""); new L l2; Set outputs = ciSet(); for (GInterpretable intp : interpretables) for (GazelleTree tree : dm_gazelle_reasonAboutChatInput_v2(userName, intp.text, paramsPlus(_, +acceptablePurposes))) if (outputs.add(tree.line)) l2.add(tree); ret l2; }