anchor.diff:    return mirror.apply(positionalArguments).reflectee;
   }
   
  +class ConsumerOfTypedef {
  +  final MyFnDef fn;
  +  ConsumerOfTypedef(this.fn);
  +}
  +
  +typedef String MyFnDef(String data);
  +
  +myImpl(String data) {
  +  return data;
  +}
  +
   class TestMiddleware implements DIMiddleware {
     @override
     resolve(id, DIMiddlewarePipeline next) {
  
positive.code: 
    TeamRepository(this.teamFactory);
  }
  
negative.code:       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>());
      });
    });
  }
  