anchor.diff:                      workItems
                       |> Seq.map snd
                   let! reversedItems = Async.foldM accumulateItems [] docs
  -                return List.rev reversedItems |> Seq.concat
  +                let result = List.rev reversedItems |> Seq.concat
  +                return result
               })
               |> Async.Parallel
               |> Async.RunSynchronously
  
positive.code:     let documentsWithKeys msg =
          BulkProjector.allMatchingKeys projectors msg
  
      let accumulateItems s ((key, projectorIndex), items) = async {
          let events = items |> Seq.map fst
          let projector = projectors.[projectorIndex]
  
          try
              let! writeRequests, _ = projector.ProcessEvents key events
              return writeRequests :: s
          with
          | ex ->
  
negative.code:             // group events into groups by document
              |> PSeq.groupBy snd
              // group items into numWorkers batches
              |> PSeq.mapi(fun i x ->
                  queuedMessagesCounter.Increment()
                  (i % numWorkers,x))
              |> PSeq.groupBy fst
              // map to async tasks
              |> PSeq.map (fun (_, workItems) -> async {
  