# LDC-E4109 โ€” An interval that ends before it starts ## What it means A time interval whose two bounds share one precision must run forward: the end cannot precede the start. Such an interval covers no time at all, so the compiler refuses the declaration carrying it. Swap the two bounds so the start comes first. Bounds at different precisions stay silent โ€” their order is settled outside the statics. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity A; relation p(a: A) kind institutional; relation q(a: A) kind institutional; rule r1 strict { for a: A; when p(a); effective [@2026-05-01, @2026-04-01]; then q(a); } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity A; relation p(a: A) kind institutional; relation q(a: A) kind institutional; rule r1 strict { for a: A; when p(a); effective [@2026-04-01, @2026-05-01]; then q(a); } ``` ## Engine message The engine reports this in its own wording: ```text example.law:8:49: error LDC-E4109: interval ending @2026-04-01 is before start @2026-05-01 (ยง193) ``` ## Related - [Time](/constructs/time/) โ€” how instants and intervals are written.