anchor.diff:  
       procedure CheckCreated;
   
  -    class function Create(const AAutoMock : IAutoMock): TMock<T>; overload; static;
  +    class function Create(const AAutoMock: IAutoMock; const ACreateObjectFunc: TFunc<T>): TMock<T>; overload; static;
     public
       class operator Implicit(const Value: TMock<T>): T;
   
  
positive.code:     function Setup : IStubSetup<T>;
      function Instance : T;
      function InstanceAsValue : TValue;
      class function Create: TStub<T>; static;
      // explicit cleanup. Not sure if we really need this.
      procedure Free;
    end;
  
negative.code: 
    case pInfo.Kind of
      //Create our proxy object, which will implement our object T
      tkClass : proxy := TObjectProxy<T>.Create(Result.FAutomocker, false, ACreateObjectFunc);
      //Create our proxy interface object, which will implement our interface T
      tkInterface : proxy := TProxy<T>.Create(Result.FAutomocker, false);
    end;
  