LDC-E1335 — Repeated expansion definition
For LLMs5 sections
What it means
Section titled “What it means”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.
Example
Section titled “Example”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);}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);}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.