Experiments with coroutines in C++