lowering_cycle
A :lowering :produces graph cycles: following produces-edges leads back to a lowering form.
Staged lowering follows :produces edges: a form’s lowering hook
emits forms whose heads are listed in :produces, and those forms
may themselves be lowerable. The aggregate schema check builds this
graph (nodes = lowering forms, edges = their :produces heads) and
rejects any cycle, so staging is guaranteed to terminate before a
single hook runs.
Break the cycle: a chain like a -> b -> a means following the
produces declarations loops forever. Re-point one :produces edge
at a terminal (non-lowering) form, or drop the :lowering on one of
the forms in the loop.
Run sjon explain lowering_cycle to read this at a terminal, browse every code, or work through diagnostics-driven repair if you want the habit rather than the answer.