Signal Box — evaluation

What got extinguished, and when

One bar per version of the state type, drawn to scale: every state the type can express, each counted once under its gravest violation (the same rule that colors the state grid). A family that has vanished from a bar is extinct — the constructor for it no longer exists. Legal coverage sits in its own column on the right, because it isn't part of any bar's total.

First, the territory itself: every physical state, colored by verdict; pale cells are unrepresentable at that rung.

v0 primitive soup
v1 name your atoms
v2 derive don't store
v3 locking table as a type
v4 parse don't validate

Reading the chart

The story is in two movements. The bars get shorter — the type can say fewer and fewer things — and at the same time the colours drain out of them, family by family, until v4 is a single green stripe: everything sayable is safe.

Two bars deserve a second look. v0 and v1 have identical unsafe segments — naming your atoms swept away the 88,400 nonsense states (off scale, noted under the v0 bar) but not a single dangerous one. Vocabulary and physics are different problems, and enums only solve the first. And the coverage column holds at 202/202 on every row: no refinement ever bought safety by outlawing a state the railway actually needs. The squeeze only ever comes from above.

By v4 the bar is all green, out of an enumeration of everything the type can express. That's the slogan made arithmetic: representable = legal, counted.