!7 svoid recurse(CancelPoint cp, int level) { if (level <= 1) cancelTo(cp); else recurse(cp, level-1); } cmodule BenchCancelPoints > DynSingleFunctionWithPrintLog { void doIt { int n = tenMillion(); time repeat n { withCancelPoint(cp -> { cancelTo(cp); }); } printBenchResult(n); int level = 5; time repeat n { withCancelPoint(cp -> { recurse(cp, level); }); } printBenchResult(n, "level " + level); } }