anchor.diff:    SysUtils;
   
   type
  -  TResolveResult = (Unknown, Success, InterfaceNotRegistered, ImplNotRegistered, DeletegateFailedCreate);
  -
     TActivatorDelegate<TInterface: IInterface> = reference to function: TInterface;
     TActivatorDelegate = reference to function: IInterface;
   
  
positive.code:     type
        TIoCRegistration = class
          ActivatorDelegate : TActivatorDelegate;
          IsSingleton       : boolean;
          Instance          : IInterface;
          function CreateSingletonActivator(const delegate: TActivatorDelegate): TActivatorDelegate;
          procedure Initialize(const delegate: TActivatorDelegate; singleton: Boolean; const instance: IInterface);
        end;
    private
      FRaiseIfNotFound : boolean;
  
negative.code:     for method in TRttiInstanceType(rType).GetMethods do
        if method.IsConstructor and (Length(method.GetParameters) = 0) then
        begin
          guid := GetTypeData(typeInfo).Guid;
          ctor := method.CodeAddress;
          Result :=
            function : IInterface
  