[Main website]


If a condition is thrown/signaled, the handler can intercept it, execute some action, and decide how to unwind the stack.

There are libraries of CL using this tecnique for simulating forms ofparadigm/algebraic-effects-handler.

Alsotech/pharo can see the stack as a first-class-value and manipulate it, but this technique is likely to be slower than in CL, because it breaks some assumption of the Smalltalk VM.

It is less powerful respectparadigm/algebraic-effects-handler because it can only unwind the stack, while effects handler can use the full power of continuation, but it is still very powerful. In case more elaborate control is needed, it can be emulated using an approach like Screamer CL prolog-like programming: it rewrite CL instructions.