anchor.diff:  
   it('should inject factory function', () {
     var module = new Module();
  -  module.factory(Complex, (Abc abc) {
  +  module.factory(Car, (Engine abc) {
       return abc;
     });
   
     var injector = new Injector([module]);
  -  var instance = injector.get(Complex);
  -
  -  expect(instance, instanceOf(Abc));
  -  expect(instance.id, toEqual('abc-id'));
  +  var instance = injector.get(Car);
  +
  +  expect(instance, instanceOf(Engine));
  +  expect(instance.id, toEqual('v8-id'));
   });
   
   
  
positive.code: 
  it('should allow providing values', () {
    var module = new Module();
    module.value(Abc, 'str value');
    module.value(Complex, 123);
  
    var injector = new Injector([module]);
    var abcInstance = injector.get(Abc);
    var complexInstance = injector.get(Complex);
  
    expect(abcInstance, toEqual('str value'));
    expect(complexInstance, toEqual(123));
  
negative.code: 
  it('should inject instance from parent but never use dependency from child', () {
    var module = new Module();
    module.type(Engine, MockEngine);
  
    var parent = new Injector();
    var child = parent.createChild([module]);
  
    var complexFromParent = parent.get(Car);
    var complexFromChild = child.get(Car);
    var abcFromParent = parent.get(Engine);
    var abcFromChild = child.get(Engine);
  
    expect(complexFromChild, toBe(complexFromParent));
    expect(complexFromChild.getValue(), toBe(abcFromParent));
  