anchor.diff:  
   { TPipelineQueue<T>.TPipelineWorkerThread }
   
  -constructor TPipelineQueue<T>.TPipelineWorkerThread.Create(const APipelineQueue : TPipelineQueue<T>; AStage : Integer); overload;
  +constructor TPipelineQueue<T>.TPipelineWorkerThread.Create(const APipelineQueue : TPipelineQueue<T>; AStage : Integer);
   begin
    inherited Create(False);
    Self.FreeOnTerminate := true;
  
positive.code:     function GetStageCount : Integer; inline;
    protected
      function ProcessStage(AStageNum : Integer; const AItems : TArray<T>; out TErrors : TArray<TErrorResult>) : TArray<T>; virtual; abstract;
      procedure HandleErrorItems(const AErrorItems : array of T); virtual; abstract;
      procedure HandleFinishedItems(const AErrorItems : array of T); virtual; abstract;
  
    public
      property StageCount : Integer read GetStageCount;
  
negative.code:     { TErrorResult }
  
      TErrorResult = record
       Item : T;
       ErrorMessage : String;
      end;
  
      { TPipelineWorkerThread}
  