anchor.diff:          expect(injector.get(typedTokenOfDynamic), 1);
           expect(injector.get(typedTokenOfString), 2);
         });
  +
  +      test('should consider opaque tokens with different nested types', () {
  +        final injector = new Injector.slowReflective([
  +          const Provider(typedTokenOfListDynamic, useValue: 3),
  +          const Provider(typedTokenOfListString, useValue: 4),
  +        ]);
  +        expect(injector.get(typedTokenOfListDynamic), 3);
  +        expect(injector.get(typedTokenOfListString), 4);
  +      });
       });
   
       group('.generate', () {
  
positive.code:         expect(injector.get(typedTokenOfDynamic), 1);
          expect(injector.get(typedTokenOfString), 2);
        });
      });
    });
  }
  
negative.code:   // We are going to expect these are different bindings.
    const Provider(typedTokenOfDynamic, useValue: 1),
    const Provider(typedTokenOfString, useValue: 2),
  
    // We are going to expect these are also different bindings.
    const Provider(typedTokenOfListDynamic, useValue: 3),
    const Provider(typedTokenOfListString, useValue: 4),
  ])
  Injector exampleGenerated() => ng.exampleGenerated$Injector();
  
  