static A vm_generalMap_getOrCreate(O key, F0 create) { ret vm_generalMap_getOrCreate(key, f0ToIF0(create)); } static A vm_generalMap_getOrCreate(O key, IF0 create) { Map generalMap = vm_generalMap(); if (generalMap == null) null; // must be x30 init synchronized(generalMap) { // should switch to locks here A a = cast vm_generalMap_get(key); if (a == null) vm_generalMap_put(key, a = create?!); ret a; } }