Seems like there's a bug with addActiveDescriptor and ContractsProvided. If
you use it on a generic interface it doesn't actually seem to detect that
one of the contracts is a generic interface and bind it appropriately so
attempts to @Inject the binding later fails. If you normally bind it, using
the TypeLiteral syntax (bind(A).to(new TypeLiteral<B<C>>)) ... then
attempts to inject B<C> will work.
Seems like ContractsProvided ought to handle this?