Off topic: we could totally cheat and make `requestBinding` return whatever type you want it to. Like this:

   <T> T requestBinding(String name, Object requiredBy) { ... }

It's a disservice to type safety, but it avoids a lot of ugly casts. Not sure.