// Module B flat-imports A and authors a DIFFERENT same-name `M :: K + 1` (= 3), // reading A's `K`. Folding B's `M` walks B's `M` → A's `K` → A's `M` — the name // `M` recurs across two modules. The cycle guard must NOT confuse B's `M` with // A's `M`: keyed on (name, source) the chain folds to 3. #import "a.sx"; M :: K + 1;