cross_ref_target_collapse
Two value-kinds cross-reference the same form but disagree on how its member set is built; the first one declared wins.
A target form’s member set is collected once, not once per
referring value-kind. When two (cross-ref …) declarations name
the same target and differ: one reads a :name-key, the other
runs a :provider; or they name different keys, providers, or
:scope forms, and the first in plugin × value-kind order builds
the set and the second’s declaration has no effect. References
through the losing kind are still checked, but against the
winner’s names.
Two kinds that declare the same spec on one target are fine and
stay silent: that is ordinary aliasing, and both agree on what
the members are. To fix a real disagreement, give the kinds
distinct :target forms, or make the two declarations match.
Run sjon explain cross_ref_target_collapse to read this at a terminal, browse every code, or work through diagnostics-driven repair if you want the habit rather than the answer.