docs← Back to article

Markdown for LLMs

LDC-E1113 — A package cannot claim a standard-library name

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

Download this articlePlain text ↗
# LDC-E1113 — A package cannot claim a standard-library name

## What it means

The standard-library namespace belongs to the language, not to any
authored package: its dictionary arrives with the language release and
is declared by the language catalogue. A package that names itself
`law.std` or anything under it would shadow that shared dictionary for
every consumer at once, so the compiler stops at the package line.

The repair is a rename: pick a name outside the standard space. The
standard types stay reachable under their usual qualified spellings no
matter what the package is called.

## Example

```law
language "law.core" version "0.2";
package law.std.time version "0.2.0";
namespace "urn:law:demo:diagnostics";

entity Applicant;
```

## Fix

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

entity Applicant;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:2:1: error LDC-E1113: package "law.std.time" declares a name from the `law.std` prelude space (§23: the std dictionary arrives with the language semantics version and is declared by the packs/std/ catalogue, not by a package; errata E-0154)
```

## Related

- [LDC-E1101](/diagnostics/LDC-E1101/) — the general shape a package name must keep.
- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.