Skip to content
docs
Arxo ↗

LDC-E5103 — A source anchor with no package address

For LLMs5 sections

A bare name in a source anchor is read as an address inside the package: a fragment, an edition, a publication, or a source. When the name matches none of these, the anchor stays opaque and the trace carries no address for it. The compiler warns and keeps the package green.

Point the anchor at something declared, qualify it toward a foreign package, or write the external identifier as a quoted string.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
source S1 { kind statute; }
edition E1 of S1 { language en; officiality official; }
fragment F1 in E1 { text en official "Duty applies."; }
entity A;
relation p(a: A) kind institutional;
relation q(a: A) kind institutional;
@source(Ghost) {
rule r1 strict { for a: A; when p(a); then q(a); }
}
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
source S1 { kind statute; }
edition E1 of S1 { language en; officiality official; }
fragment F1 in E1 { text en official "Duty applies."; }
entity A;
relation p(a: A) kind institutional;
relation q(a: A) kind institutional;
@source(F1) {
rule r1 strict { for a: A; when p(a); then q(a); }
}

The engine reports this in its own wording:

Output
example.law:11:1: warning LDC-E5103: @source(Ghost): "Ghost" is not declared in the package as fragment/edition/publication/source — a bare name stays in `anchors` instead of a StableId, and the trace carries no §33 address (§202). A reference to a foreign package is written `пакет::Фрагмент`, an opaque external-registry identifier — as a quoted string

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.