Skip to content
docs
Arxo ↗

LDC-E1335 — Repeated expansion definition

For LLMs5 sections

An expansion definition owns its name exactly once per package: the second definition under the same name does not extend or override the first, it collides. When two definition blocks share a name, the compiler stops at the repetition and keeps only the first.

The repair is to merge the two blocks into one definition, or to give each its own name. One name denotes one template.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Person;
entity Choice;
entity SpecialChoice : Choice;
entity Other;
const Selected: SpecialChoice = entity_ref("urn:choice:selected");
const Wrong: Other = entity_ref("urn:choice:wrong");
relation eligible(p: Person, choice: Choice) kind empirical;
relation applicable(p: Person, choice: Choice) kind institutional;
expansion fixed {
params { subject: binder; choice: value; ground: relation(subject, choice); result: relation(subject, choice); }
emit rule self/result defeasible {
for subject;
when ground(subject, choice);
then result(subject, choice);
scope from self; effective from self; labels from self; source from self;
}
}
expansion fixed {
params { subject: binder; choice: value; ground: relation(subject, choice); result: relation(subject, choice); }
emit rule self/result defeasible {
for subject;
when ground(subject, choice);
then result(subject, choice);
scope from self; effective from self; labels from self; source from self;
}
}
expand fixed Result {
label en official "Fixed option";
bind subject = person: Person;
choice = Selected;
ground = eligible;
result = applicable;
effective [@2026-01-01, @2027-01-01);
}
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Person;
entity Choice;
entity SpecialChoice : Choice;
entity Other;
const Selected: SpecialChoice = entity_ref("urn:choice:selected");
const Wrong: Other = entity_ref("urn:choice:wrong");
relation eligible(p: Person, choice: Choice) kind empirical;
relation applicable(p: Person, choice: Choice) kind institutional;
expansion fixed {
params { subject: binder; choice: value; ground: relation(subject, choice); result: relation(subject, choice); }
emit rule self/result defeasible {
for subject;
when ground(subject, choice);
then result(subject, choice);
scope from self; effective from self; labels from self; source from self;
}
}
expand fixed Result {
label en official "Fixed option";
bind subject = person: Person;
choice = Selected;
ground = eligible;
result = applicable;
effective [@2026-01-01, @2027-01-01);
}

The engine reports this in its own wording:

Output
example.law:22:11: error LDC-E1335: expansion fixed: repeated definition

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

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