|
|
|
|
|
by lolinder
15 days ago
|
|
Not just effects, multi-shot effects: > Algebraic effects with deep, multi-shot handlers. A handler can resume a computation zero, one, or many times, which is what makes exhaustive search and exact inference ordinary library code. I love me some algebraic effects, but this sets off alarm bells for me. Multi-shot effects are neat and powerful but are incredibly difficult to reason about for humans, and given that there are few languages that have implemented them (and they're so niche with very little training data) I'm skeptical that LLMs are sufficiently better at them to make up the gap. One-shot effects are a cross between `throw` and a function call. Multi-shot are full-on delimited continuations and come with all the complexity that entails. |
|
I had a very similar thought and ended up building a capability system[1] in my language to capture side effects.
[1] https://march-lang.org/docs/cookbook/capabilities/ * docs are a work in progress