Manifesto · v0.1 draft

Not knowing is a value.

Seven short claims. Each one is something the language is meant to enforce, not a style guide.

1. A function may decline.

Its return type says so. T? means a T, or an abstention with a reason. There is no third state hiding behind null, an exception or an empty string.

2. An abstention is not an error.

Errors mean something broke. An abstention means the program worked and the answer is not available. They are different types, handled differently, and neither can be silently dropped.

3. The compiler reads the contract, not the prose.

Rules written in a prompt are requests. Rules written in a type are checked. If something must hold, it goes in the signature.

4. Values remember where they came from.

A known value can carry its grounds: the record, document or call that produced it. Grounds travel through operations so a reader can trace a result back.

5. One obvious way.

Few keywords, one idiom per task. A smaller language is easier to review and leaves a model fewer ways to drift.

6. The spec fits in a system prompt.

If a model cannot hold the whole language in context, people cannot hold it in their heads either. This is a design budget, measured in tokens.

7. Saying “I don't know” is a positive result.

A system that can abstain correctly is more useful than one that is always fluent. The language should make the right abstention as easy to write as the right answer.