sclass DynModuleRef { S moduleID; transient O module; *() {} *(S *moduleID) {} void _doneLoading() { resolve(); } void resolve { if (module == null && moduleID != null) module = dm_getModule(moduleID); } O get() { resolve(); ret module; } }