News for hackers. Stuff that matters.
Re:Algebraic Effects for the Rest of Us by sirwhinesalot on Saturday May 30, 2026 @08:00AM (#48335260)
Yeah, there's three things you're supposed to implement: try/handle, perform, and resume. The names can vary (e.g., perform is often called "raise" or "do"). They have well defined interactions.

I don't actually know what the original paper describing what algebraic effects are supposed to do is, I just know them informally from Koka, Effekt, etc.

Re:Algebraic Effects for the Rest of Us by tome on Saturday May 30, 2026 @08:30AM (#48335478)
Interesting, then I wonder if anyone has distinguished them from continuation "protocols" such as shift/reset and prompt/control. Thanks!

Bringing it back to my original point, I guess I'd say that if you already have function calls, exceptions and threading built in to the language then you don't need perform/resume except in niche cases (multi-shot continuations being the only case I know of, but I don't even know of many applications of those).