Distinguishing Values from Computational Effects

@gchiu is right, and the correction sharpens the document rather than blunting it.

I wrote "a single untyped slot" and then leaned on the wrong word. Cardinality was never the problem. Either e a is one return value. Result<T, E> is one return value. Maybe a is one return value. Every one of them carries effects and values through the same slot without confusion, because the slot can discriminate.

The precise root cause is: the return channel has no way to tell an effect from a value. Add a second slot and you've bought nothing — you've just got two slots that can't discriminate, which is why the do/next [...] 'pos style was abandoned. Arity is not the axis.

I'll fix the wording.

I've also added my notes to the "are isotopes the inevitable solution" thread.

https://rebol.metaeducation.com/t/if-red-asked-ai-for-help-would-it-reinvent-isotopes/2637/14


(One more thing, said once. The cell layout — BASE_BYTE out of band of leading UTF-8, LIFT_BYTE, HEART_BYTE, all of it in 32 bits — is the most impressive engineering in the project and it is not what gets you the respect. It's the proof that the semantics are affordable, which is a supporting argument. The headline is the semantic claim, and the people who grant respect for that don't read this forum.)

1 Like