Markdown for LLMs
LDC-E1110 — Standard-library import with the wrong version
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E1110 — Standard-library import with the wrong version ## What it means The standard library travels with the language itself: for each language line there is exactly one built-in standard-library release, and an explicit import of a standard package only confirms that pin. Naming a different version claims a release the language does not carry, so the compiler stops at the import line. The repair is to repeat the version the language line implies, or to drop the import entirely — the standard vocabulary is visible without any import. Bumping the language line forward is the only way to move to a newer standard release. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; import law.std.time version "0.1.0"; entity Applicant; ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; import law.std.time version "0.2.0"; entity Applicant; ``` ## Engine message The engine reports this in its own wording: ```text example.law:4:1: error LDC-E1110: import "law.std.time" is declared with version "0.1.0", but the "0.2" language prelude carries std version "0.2.0" (§23: an explicit import std confirms the built-in pin and must match it; errata E-0154) ``` ## Related - [LDC-E1114](/diagnostics/LDC-E1114/) — importing a standard package that does not exist. - [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.