static A safeUnstructureAllowingCertainClasses(S s, S... allowedClasses) { new Set allowedClassesSet; fOr (S c : allowedClasses) { set.add("main$" + name); set.add("loadableUtils.utils$" + name); } O classFinder = func(S name) { if (!allowedClassesSet.contains(name)) fail("Class not allowed to unstructure: " + name); ret classForName(name); }; ret (A) unstructure(s, false, classFinder); }