anchor.diff:                      doc.Value <- doc.Value + value
                   else
                       doc.Value <- doc.Value - value
  -            do! session.SaveChangesAsync() |> taskToAsync
  +            do! session.SaveChangesAsync() |> Util.taskToAsync
           }
   
       let queue = new WorktrackingQueue<Guid, Guid * int>(fst >> Set.singleton, processEvent, 10000, 10);
  
positive.code:             let! doc = async { 
                  if doc = null then
                      let newDoc = new MyCountingDoc()
                      do! session.StoreAsync(newDoc, docKey) |> taskToAsync
                      return newDoc
                  else
                      return doc
  
negative.code:             | None -> return ()
          }
  
  type RavenProjector (documentStore:Raven.Client.IDocumentStore) =
  
      let grouping = fst >> Set.singleton
  
      let processEvent (key:Guid) values =
  