anchor.diff:                              let! results = 
                                   partitions 
                                   |> Array.map (fun partitionId -> createTask partitionId collectorf) 
  -                                |> Partitions.ofArray workerCount
  -                                |> Array.map (fun wfs -> wfs |> Cloud.Parallel |> Cloud.ToSequential )
  -                                |> Cloud.Parallel
  -                            return Array.reduce combiner (Array.concat results)
  +                                |> parallelInChunks workerCount
  +                            return Array.reduce combiner results
                               
                   } }
   
  
positive.code:                                 let! results2 = restPartitions 
                                                  |> Set.toArray 
                                                  |> Array.map (fun pid -> cloud { let! r = createTask pid collectorf in return pid,r }) 
                                                  |> Cloud.Parallel
                                  let final = Seq.append results1 results2
                                              |> Seq.sortBy (fun (p,_) -> p)
                                              |> Seq.map (fun (_,r) -> r)
  
negative.code:                     let! slice = (cached :> CloudArray<'T>).GetPartition(pid)
                      CloudArrayCache.Add(cached, pid, slice)
                  }
              let! workerCount = getWorkerCount()
              let taskId = Guid.NewGuid().ToString()
              let cached = new CachedCloudArray<'T>(source, taskId)
              if source.Length > 0L then
                  let partitions = [|0..source.PartitionCount-1|]
                  do! partitions 
                      |> Array.map (fun pid -> createTask pid cached) 
                      |> parallelInChunks workerCount
                      |> Cloud.Ignore
              return cached :> _
          }
  