== Promises <> are the recommended default coroutine type. They're eager and thus easily usable for ad-hoc concurrecy. [source,cpp] ---- cobalt::promise my_promise() { co_await do_the_thing(); co_return 0; } cobalt::main co_main(int argc, char * argv[]) { // start the promise here auto p = my_promise(); // do something else here co_await do_the_other_thing(); // wait for the promise to complete auto res = co_wait p; co_return res; } ----