I’m kind of repeating myself, but this is what I think we should aim for: composable primitives.
At that point in time, I will be suspicious of anything that will want to take over my main loop or invert control in invasive ways. I want a certain degree of freedom on how my application is to be structured, if only to experiment new ways effects could give me.
Also one thing that I think is not stressed enough is that most code out there should actually not use concrete effects or effectfull primitives at all.
I have been waiting for effects for the past 7 years precisely so that I don’t have to use them. They eventually allow the separation of concerns I was seeking for: most library codec code should not be concerned about how you move data in and out: that’s for the application to decide, using any kind of effects it finds desirable.
In that respect developing and offering simple standard abstractions in the Stdlib
like I mentioned in this message which are effect friendly without mentioning any of them are more important to me than deciding on concrete effects.
Basically I think there’s the need for infrastructure and patterns so that effects can be used in a compositional way and that using something like eio
or not rather becomes a matter of application choice.