static A withDeepReturn(IVF1> r) { temp new DeepReturnSite site; try { r.get(site); } catch e { e = innerException(e); if (e instanceof DeepReturn && e/DeepReturn.site == site) ret site!; else rethrow(e); } null; }