On Oct 28, 2026, at 12:41 PM, Larry Garfield <[email protected]> wrote:
> 
> 2. "Effect systems" are a very specific thing in comp sci research.  I'm not 
> sure that what is proposed here counts as such.  (Think exceptions that 
> return to their point of throw after the handler completes.  It seems mainly 
> useful as a way to keep a routine technically-pure while still letting it do 
> useful things.)  There are some academic Haskell-like languages with it, but 
> I don't know of anything in widespread use.
> 
> What is described here feels more like gated capabilities, similar to what 
> Wasm does.  It is an interesting concept, but for it to work it would need to 
> integrate at a very low level.  The engine would need to explicitly fail a 
> function that tries calling print without the "I do output" flag, or opening 
> a process without the "I start processes" flag, or reading from the file 
> system without the "I read files" flag.  The biggest issue there is, 
> unsurprisingly, backward compatibility.  A new PHP release that fails on any 
> function that has a print or fopen statement in it until you add new syntax 
> not available in earlier versions is a complete non-starter.

Yeah, these don't seem quite like algebraic effects. I think there is some 
modern interest in them again (i.e. Unison), so I would pick a different term 
to describe them. Capabilities also imply something more like an object 
capability system to me, so I would also avoid that term.

Reply via email to