// 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;
}
