anchor.diff:  begin
     fLock.lock;
     try
  -    if fState <> TaskState.Created then raise new NSException withName(NSInvalidArgumentException) reason('Task already started/queued/done') userInfo(nil);
  +    if fState <> TaskState.Created then
  +      raise new NSException withName(NSInvalidArgumentException) reason('Task already started/queued/done') userInfo(nil);
       fState := TaskState.Queued;
     finally
       fLock.unlock;
     end;
   
  -  dispatch_async(coalesce(aScheduler, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)), -> run());
  +  dispatch_async(coalesce(aScheduler, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)), -> DoRun());
   end;
   
   class method __ElementsTask.Run(aIn: TaskBlock): __ElementsTask;
  
positive.code:   end else
      ContinueWith(a -> begin 
        aCompletion.moveNext(a);      
        end, nil);
      
    exit true;
  end;
  
  method DefaultThreadSyncHelper.GetThreadContext: dispatch_queue_t;
  begin
    if NSThread.isMainThread then
      exit dispatch_get_main_queue;
    exit nil;
  end;
  
  method DefaultThreadSyncHelper.SyncBack(aContext: dispatch_queue_t; aAction: dispatch_block_t);
  begin
    dispatch_async(aContext, aAction);
  end;
  
negative.code: 
  implementation
  
  { __ElementsTask }
  
  constructor __ElementsTask(aDelegate: Object; aState: Object);
  begin
  