// name -> (name, parsed map) static Map>> mechMultiMapCI_cache = synchroMap(); static MultiMap mechMultiMapCI(S listName) { Pair> p = mechMultiMapCI_cache.get(listName); S text = mechList_opt_raw(listName); if (p != null && eq(p.a, text)) ret p.b; MultiMap map = parseDoubleArrowMultiMapCI(tlft(text)); p = pair(text, map); mechMultiMapCI_cache.put(listName, p); ret p.b; }