https://cppcon2019.sched.com/event/SfrC/a-unifying-abstraction-for-async-in-c++