anchor.diff:        execute((Repository<User> repo) {
           expect(repo, new isInstanceOf<MySQLRepository<User>>());
         }, container);
  +    });
  +  });
  +
  +  group('Typedefs:', () {
  +    test('it supports typedefs', () {
  +      var conf = {MyFnDef: myImpl, ConsumerOfTypedef: DI.object()};
  +      var container = new DIContainer.build([conf]);
  +      execute((ConsumerOfTypedef consumer) {
  +        expect(consumer.fn('foo'), 'foo');
  +      }, container);
  +    });
  +  });
  +
  +  group('Private properties:', () {
  +    test('it supports private properties in constructors', () {
  +      var conf = {WithPrivate: DI.object()};
  +      var container = new DIContainer.build([conf]);
  +      var withPrivate = container.get(WithPrivate);
  +      expect(withPrivate, new isInstanceOf<WithPrivate>());
  +      expect(withPrivate.myService, new isInstanceOf<MyService>());
       });
     });
   }
  
positive.code:   return mirror.apply(positionalArguments).reflectee;
  }
  
  class TestMiddleware implements DIMiddleware {
    @override
    resolve(id, DIMiddlewarePipeline next) {
  
negative.code: 
    TeamRepository(this.teamFactory);
  }
  
  class WithPrivate {
    final MyService _myService;
  
    MyService get myService => _myService;
  
    WithPrivate(this._myService);
  }
  