External Publication
Visit Post

Every system that serves human intent must be able to identify "which one" and recognize "the same one."

Rust Internals [Unofficial] May 2, 2026
Source

Title: Pre-RFC: List and VariableList: identity-based storage primitives with interning

Every system that accepts input from humans operates on two concepts that are currently absent from core:

  1. A way to store and retrieve values by a stable integer identity (1-based ordinal, where 0 is the null sentinel — the only meaningful null for a computer)
  2. A way to recognize that two inputs are the same value — interning

slice and Vec are memory representations. They have no notion of identity or equality across contexts. You cannot intern a Vec. This is a gap, not a stylistic choice.

I have been using two primitives to fill this gap:

List<T> — fixed-width unit store, addressed by usize identity VariableList<T> — variable-width unit store, same identity model, with interning support

Both are small enough to copy into a project without installing a crate.

Source: context-engine/src/list.rs at main · animagram-jp/context-engine · GitHub

These two concepts — ordinal identity and value interning — are not primitives in the sense of bits or ordering. But they are unavoidable the moment a computer does anything for a human. Every system that serves human intent must identify "which one" and recognize "the same one." That is not a library concern. It belongs in core.

I am not proposing specific API surface yet. I want to know: is this a gap others have felt? And is interning as a general primitive — not just for strings — something worth pursuing in core?


English is not my first language — please forgive any awkward phrasing.

Thank you for reading.

Discussion in the ATmosphere

Loading comments...