docs← Back to article

Markdown for LLMs

LDC-E0203 — A keyword cannot be used as a name

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# LDC-E0203 — A keyword cannot be used as a name

## What it means

Some words belong to the language itself: they open blocks, declare kinds,
or mark the shape of a file. Such a word can never be the name of an entity,
a relation, a rule, or anything else an author declares. When a declaration
tries to take one of these reserved words as its name, the compiler stops at
the declaration and asks for a different name.

The closed list of reserved words is fixed: if a name you want is on it,
pick a synonym. Renaming the declaration and all its uses is the whole fix —
no restructuring is ever needed.

## Example

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity Applicant;
relation event(a: Applicant) kind institutional;
```

## Fix

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity Applicant;
relation happened(a: Applicant) kind institutional;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:6:10: error LDC-E0203: `event` is a hard keyword (§15) and cannot be a name (relation name); use a different name (the quoted-identifier branch was removed by errata E-0070)
```

## Related

- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.