experiments with coroutines in C++