// list contains strings or pairs (item + reasoning) or WithReasoning // optional parameter: S computerNotes // optional parameter: O info - an object that will be struct()ed and appended to the computerNotes field // This version uses str(makeList) for "code" field sS dm_showListWithFeedback(F0 makeList, O... _) { S code = str(makeList); optPar S computerNotes; optPar O info; if (info != null) computerNotes = joinNemptiesWithEmptyLines(computerNotes, struct(info)); ret dm_showListWithFeedback(makeList!, paramsPlus_noOverwrite(_, +code, +computerNotes)); } sS dm_showListWithFeedback(S description, Collection list, O... _) { S module = dm_showNewModule("#1026559/ListWithFeedback"); dm_setAll(module, +description, code := optParam code(_), computerNotes := optParam computerNotes(_)); dm_callModule(module, 'importItems, list); ret module; } sS dm_showListWithFeedback(Cl list, O... _) { ret dm_showListWithFeedback(null, list, _); }