Heise publishes a background piece on typed domain grounding as a design principle: the idea that a domain-specific language should carry its domain's types and constraints in a form a language model can read, check and generate against — rather than relying on prose conventions that happen to live in documentation.

The motivation sits in how LLM-based development fails today. A model asked to emit configuration, queries or rules in a loosely specified language produces text that parses until it doesn't: names drift, units get dropped, constraints get violated in ways no compiler catches. Grounding the language in explicit types gives both sides a contract — the model gets machine-checkable feedback instead of hope, and the codebase gets validation at the language boundary instead of at runtime.

For teams designing internal DSLs the principle has a practical edge: an LLM-friendly language is, almost as a side effect, a language with a real type checker, precise error messages and a grammar a tool can be tested against.

The full argument, with worked examples of what grounding looks like in practice, is in Heise's piece.