For GWT, I really believe we need "full-graph codegen" (à la GIN), as the approach with `Binding`s probably doesn't play well with code splitting (`GWT.runAsync`). This will benefit everyone, including Android.

A `Ginjector`-like approach like I've been using in Sheath can be made to work within the JVM using `java.lang.reflect.Proxy` and/or a thin generated façade in front of `ObjectGraph`. Even that `Ginjector`-like interface could possibly be generated from modules (with methods for each `entryPoint` class). The open question then is how to give it module instances when you create it (and how these modules will be used by and passed around to the generated code): `GWT.create()` doesn't take parameters, so I think the solution would be to use a factory (you'd use `GWT.create(MyGraph.Builder.class)` in GWT and something like `ObjectGraph.newBuilder(MyGraph.Builder.class)` in a JVM):

```java
MyGraph graph = ObjectGraph.newBuilder(MyGraph.Builder.class)
    .setFooModule(new FooModule(fooArg))
    .setBarModule(new BarModule(barArg1, barArg2))
    .build();
```

But, well, that's not the place to discuss this.