module gfx { module geom { interface Shape { }; interface Rectangle : Shape { }; interface Path : Shape { }; }; interface GraphicsContext { void fillShape(geom::Shape s); void strokeShape(geom::Shape s); }; }; module geom { interface Shape { }; interface Rectangle : Shape { }; interface Path : Shape { }; }; interface Shape { }; interface Rectangle : Shape { }; interface Path : Shape { }; interface GraphicsContext { void fillShape(geom::Shape s); void strokeShape(geom::Shape s); }; void fillShape(geom::Shape s); void strokeShape(geom::Shape s); module gui { interface Widget { }; interface Window : Widget { gfx::GraphicsContext getGraphicsContext(); }; interface Button : Widget { }; }; interface Widget { }; interface Window : Widget { gfx::GraphicsContext getGraphicsContext(); }; gfx::GraphicsContext getGraphicsContext(); interface Button : Widget { };