docs← Back to article

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.

Download this articlePlain text ↗
# 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.