Skip to content
docs
Arxo ↗

LDC-E1330 — Bare name is not a term

For LLMs5 sections

A term position needs a value with a declared origin: a package constant, an enumeration member, a declared symbol, a presented dependency export, or a bound rule variable. A bare name that resolves to none of these is not a term form — accepting it would let a reference to nothing ride the whole pipeline silently while the rule never fires. The compiler stops at the name.

The repair depends on what the name was meant to be. An individual is declared as a constant bound to its identifier; a variable is bound by the rule. Either way the name resolves after the fix.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
const Joe: Tenant = Stranger;
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
const Joe: Tenant = entity_ref("urn:law:demo:diagnostics#Joe");

The engine reports this in its own wording:

Output
example.law:6:21: error LDC-E1330: name "Stranger" in a §53 term position resolves to no declaration: neither `const` §54, nor a §38 enum member, nor a package symbol, nor a §24 dependency export, nor a rule binder — it is unresolved name §188. A bare domain constant is NOT a term form (errata E-0032 item 1): a reference to a nonexistent symbol would pass the whole pipeline silently, and the rule would never fire. Two resolutions. If it is an individual — declare it: `const Stranger: <Type> = entity_ref("<namespace>#Stranger");`. If it is a variable — bind it with a rule binder (`for Stranger: <Type>;`). The §194 source-metadata `jurisdiction`/`authority`/`issuer` identifiers and the §47.3 judgment-declaration `authority` are not terms and require no declaration (E-0117)

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

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