!7 sclass Entry { S code, hints; transient F1 function; transient Throwable error; } set flag DynModule. cmodule FunctionsOnStrings > DynObjectTable { // API F1 getFunction(S code, S hints) { lock lock; Entry e = objectWhere(data(), +code, +hints); if (e == null) add(e = nu Entry(+code, +hints)); if (e.error != null) throw rethrow(e.error); if (e.function == null) { print("Loading function: " + code); try { e.function = codeWithHintsToFunctionOnString(code); } catch ex { e.error = ex; throw rethrow(ex); } } ret e.function; } }