It will be cool to write effect code using async/await syntax introduced in PEP 492. For example, following code using do decorator:
@do
def eff_func():
r1 = yield Effect(Intent1())
r2 = yield Effect(Intent2(r1))
yield do_return(r2)
can be written using async/await syntax as:
@do_async
async def eff_func():
r1 = await Effect(Intent1())
r2 = await Effect(Intent2(r1))
return r2