LDC-E8301 — Overlapping rows under hit unique
For LLMs5 sections
What it means
Section titled “What it means”A decision table with a unique hit policy promises that at most one row fires for any input: the rows must be pairwise disjoint. When two rows can both match the same input, the promise is broken — the engine could not pick a single winner — so the compiler stops at the later row and names both rows involved.
Narrowing one of the guards until the two rows exclude each other is the fix. If overlapping rows are intended, a different hit policy that allows several rows to fire says so explicitly.
Example
Section titled “Example”language "law.core" version "0.2";package demo.diag version "0.1.0";namespace "urn:law:demo:diag";
decision Bad(x: Integer) -> Integer { table hit unique { when x >= 0 => 1; when x >= 0 => 2; otherwise => 0; }}language "law.core" version "0.2";package demo.diag version "0.1.0";namespace "urn:law:demo:diag";
decision Good(x: Integer) -> Integer { table hit unique { when x < 10 => 1; when x >= 10 => 2; otherwise => 0; }}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.