sS profileThisThreadToString(Runnable r) { poorMansProfiling(currentThread()); pcall { r.run(); } ret poorMansProfiling_stopAndRenderResults(); } static Pair profileThisThreadToString(IF0 f) { new Var var; S profile = profileThisThreadToString(r { var.set(callF(f)) }); ret pair(var!, profile); }