static A persistentObjectFromProgram(S progID, S name) { PersistentLister l = uniq(new Concepts(progID).load(), PersistentLister); IVar v = l.getVar(name); ret v == null ? null : v!; } // makeDefaultObject: (func -> A) or Class static A persistentObjectFromProgram(S progID, S name, O makeDefaultObject) { A a = persistentObject(progID, name); if (a == null) ret makeDefaultObject instanceof Class ? nu((Class) makeDefaultObject) : callF(makeDefaultObject); }