// A flat-imported module authors its OWN `IoErr { Net }`. The importing file // (`main`) ALSO authors an `IoErr` AND uses it as a closure-literal return // annotation (`-> !IoErr`); main's author must win THERE too (own-wins), // while this module's `IoErr` stays a DISTINCT nominal used by `dep_err`. // The tag sets are disjoint, so binding the wrong `IoErr` is a hard compile // error (`Net` is not in main's `{ Disk }`, and vice-versa). IoErr :: error { Net } dep_err :: () -> IoErr { return error.Net; }