Do I build my language's IO model on top of monads, or on top of algebraic effects?
Conversation
Personally a big fan of algebraic effects from a usability perspective. They also seem great for asynchronous scheduling. From what I've seen it can be tricky to compile them, however.
1
1
Can you recommend a good paper about them btw?
2
1
Uhhh hmmm. I'm not sure a good entry-point. There's a massive bibliography here: github.com/yallop/effects, but it's a rather intimidating place to start. Almost needs a guide on what to start with.
1
1
Maybe you could have a look at some of the ‘background’ sections on some of the more recent dissertations on effects (listed right at the bottom). That can sometimes be a good way to get started, as they are written by newcomers to the field. For example: dhil.net/research/paper
2
1
Thanks a lot! This seems like a good start.
1
I did like this toy implementation of a time sharing OS using effect handlers:


