raulraja
01/24/2018, 12:12 AMbind/yields is present just for async computation in coroutines with async/await. The equivalent thing here is that how would you implement async/await with naked values? Each monad has a different complexity in relation to the effect they model in this case Async. Other monads model absence, N effects. When all those effects are implemented with naked values they all are implemented in a different way and requires concrete implementations which may be desirable or not based on optimizations. There is room for mutability in pragmatic FP. But I think the idea here is that FP offers a unified programming model for everything where you can express those high level concerns of computing over Effects in the same way for all monads.