anchor.diff:  begin
     Result := nil;
   
  -  delegate := CreateActivatorDelegate(AClass, IInterface);
  +  delegate := CreateActivatorDelegate(AClass, TypeInfo(IInterface), False);
     if Assigned(delegate) then
       Result := delegate();
   end;
   
   class function TClassActivator.CreateActivatorDelegate(
  -  const AClass: TClass; guid: TGUID): TActivatorDelegate;
  +  const AClass : TClass; typeInfo : PTypeInfo; raiseOnError : Boolean): TActivatorDelegate;
   var
     rType : TRttiType;
     method : TRttiMethod;
  +  guid : TGUID;
     ctor : function(InstanceOrVMT: Pointer; Alloc: ShortInt = 1): Pointer; // constructor signature
   begin
     Result := nil;
  
positive.code:       class constructor Create;
    public
      class function CreateInstance(const AClass : TClass) : IInterface;
      class function CreateActivatorDelegate(const AClass : TClass; guid: TGuid) : TActivatorDelegate;
    end;
  
  implementation
  
negative.code:   SysUtils;
  
  type
    TActivatorDelegate<TInterface: IInterface> = reference to function: TInterface;
    TActivatorDelegate = reference to function: IInterface;
  
  