// pairs of (result, module id) static L> dm_universalSearch(S query) { new L> out; for (O m : dm_listModules()) { S result = pcallOpt(dm, 'uSearch, query); if (nempty(result)) out.add(pair(result, dm_moduleID(m)); } ret out; }