static O dm_evalJava_withModule(S expression, O... args) { O m = dm_current_mandatory_generic(); S code = evalJava_prep(expression) + [[ sO dm_current_mandatory_generic_value; sO dm_current_mandatory_generic() { ret dm_current_mandatory_generic_value; } sO dm_current_generic() { ret dm_current_mandatory_generic(); } ]]; O obj = veryQuickJava(code); setOpt(obj, programID := programID()); makeDependent(obj); setOpt(obj, creator_class := newWeakReference(dm_os())); set(obj, dm_current_mandatory_generic_value := m); ret evalJava_myProgramID_main_2(obj, args); }