static Map> mechMapCI_cache = synchroMap(); please include function parseDoubleLeftArrowMapCI_tlft. static SS mechMapCI(S listName) { Pair p = mechMapCI_cache.get(listName); S text = mechList_raw(listName); if (p != null && eq(p.a, text)) ret p.b; S parsing = first(mechList_opt(listName + " | Parsing")); p = pair(text, parsing != null ? (SS) callAndMake(parsing, text) : parseDoubleArrowMapCI(tlft(text))); mechMapCI_cache.put(listName, p); ret p.b; }