Markdown for LLMs
LDC-E2101 — A type name that resolves nowhere
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E2101 — A type name that resolves nowhere ## What it means Every type named in a declaration must come from somewhere: a standard type the language ships, or an entity, record, variant, enum, or alias declared in the same file. A name with neither backing is not a guess the compiler will fill in later — it stops at the declaration and asks which known type was meant. Declaring the missing type, correcting a misspelling, or qualifying a standard name fixes it. The parameter keeps its position; only the name changes. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; relation known(a: Missing) kind institutional; ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity Guest; relation known(a: Guest, b: Guest) kind institutional; ``` ## Engine message The engine reports this in its own wording: ```text example.law:5:19: error LDC-E2101: type "Missing" does not resolve: neither std §257 nor declared in the file (E-0005) ``` ## Related - [Vocabulary](/constructs/vocabulary/) — which names may appear in type positions.