Finding the Right Primitives

From Grant Custer's bio : "Finding the right primitives for exploring a system is one of my favorite challenges." Yesterday in a tinycorp meeting I heard the same word — Geohot reading TileLang , calling out its "fixed set of primitives," saying "fragments are the standout primitive."

First reaction to t.copy(A[by, k], A_shared) is that it's "nonsensical Python" — block_M is just an int, so the indexing shouldn't make sense. Then he updates: by must be a range. "Okay, that's actually more sensible than I thought." TileLang isn't a programming language like Triton tries to be; it's a DSL with a fixed set of primitives, and the syntax is sugar that only reads right once you know which identifiers are ranges.

Same instinct from two people who don't know each other: the choice of primitives is most of the design.

I keep running into this in my own work. I've been trying to reimplement Nickel & Kiela's Poincaré embeddings — but not in the standard formulation. I want to use Wildberger's universal hyperbolic geometry , because his primitives are entirely algebraic. He removes distance. He removes the transcendental functions. Quadrance instead of distance, spread instead of angle. Just rational arithmetic. The point is that it runs on any computer, exactly.

But this is a primitive-level choice and it might not pay off. The standard loss function for embeddings — softmax cross-entropy with e^{-d(u,v)} — assumes d is a non-negative metric. Quadrance can be negative. Plug it in mechanically and the formula still computes, but it's not clear the numbers still mean what they meant before. The geometry might come through. It might distort.

I haven't written a line of code for this yet. Two months of thinking. The first time I tried to start with code it failed, because I didn't actually understand what I was choosing. The primitives have to settle before the implementation can exist.