# LDC-E4125 — A closure over a round-dependent relation ## What it means A closure materializes the full extent of one relation, but a relation that depends on staged rounds has no single extent: each round computes its own slice. Closing over such a relation is not supported, and the compiler refuses the closure by name. Close a relation that stands outside the rounds instead, or drop the closure. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; relation counter(i: Integer) kind institutional; relation probe(i: Integer) kind institutional; stage R { index i: Integer from 1 to 5; bind counter index 1; } closure C { predicate counter; domain probe; snapshot "urn:law:demo:snap"; complete_as_of @2026-01-01T00:00:00Z; derive_explicit_negative true; } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; relation counter(i: Integer) kind institutional; relation probe(i: Integer) kind institutional; stage R { index i: Integer from 1 to 5; bind counter index 1; } closure C { predicate probe; domain probe; snapshot "urn:law:demo:snap"; complete_as_of @2026-01-01T00:00:00Z; derive_explicit_negative true; } ``` ## Engine message The engine reports this in its own wording: ```text example.law:8:9: error LDC-E4125: STAGE_CLOSURE_UNSUPPORTED: §70 closure "C" over relation "counter" depending on rounds is not supported in 0.3 (§111.2 item 1) ``` ## Related - [Time](/constructs/time/) — how rounds and indices are written.