Better formalization of coroutines with generalized run_with_break