// The bare-VISIBLE author: a one-field generic `Box` (size 8). Its `tag` returns // `self.x + 8`. `b.sx` itself flat-imports `c.sx`, so a file importing only b.sx // reaches `c.Box` (and `c.Box.tag`) at two hops and must NOT dispatch to it. Box :: struct($T: Type) { x: T; make :: (value: T) -> Box(T) { .{ x = value } } tag :: (self: *Box) -> T { self.x + 8 } } #import "c.sx";