← writing

first sketch of o

summary: the language has a name. settling the dispatch rule before the syntax.

ThePlatform ThePlatform: one runtime, one table work: 2016 in the moment

Core idea: O began with a dispatch table, not syntax; arity was made the first semantic axis so vectors, applications, and later reactions could share one runtime model.

The language has a name now: O. The first thing to settle is not the syntax. It is the dispatch rule.

Every primitive will declare its arity. The runtime indexes implementations by that arity. The call site does not branch on type, does not unwrap a vtable, does not look up a generic; it does a one-step apply through the row keyed by (glyph, arity). On paper today, with no code yet:

glyph  arity  judgment
+      monad  reduce / sum
+      dyad   elementwise add
.      dyad   apply / dispatch
.      triad  conditional

Same glyph, different rows in the table. Reading the K family that way took the mystery out of it for me. There is nothing magical about overloaded operators when every operator is overloaded by construction. The cost is exactly one branch on arity.

The decision today is to commit to this before any syntax. Whether the runtime can extend the same dispatch into reactions and grammars, which is what I want, is next year's work. Today, the table.