module-info.java

    module com.example.foo {
        requires com.example.foo.http;
        requires java.logging;

        requires transitive com.example.foo.network;

        exports com.example.foo.bar;
        exports com.example.foo.internal to com.example.foo.probe;

        opens com.example.foo.quux;
        opens com.example.foo.internal to com.example.foo.network,
                                          com.example.foo.probe;

        uses com.example.foo.spi.Intf;
        provides com.example.foo.spi.Intf with com.example.foo.Impl;
    }