anchor.diff:          async { 
               let untypedKey = key :> obj
   
  -            // doc.Writes <- doc.Writes + 1
  -
  -            let! writeRequests = documentProcessor.Process documentStore cache untypedKey events
  +            let! writeRequests = documentProcessor.Process fetcher untypedKey events
               let (complete, wait) = getPromise()
                   
               do! writeQueue.Add(writeRequests, complete)
  
positive.code: 
      let cache = new MemoryCache("RavenBatchWrite")
  
      let writeBatch _ docs = async {
          let originalDocMap = 
              docs
  
negative.code: 
  type ProjectedDocument<'TDocument> = ('TDocument * Raven.Json.Linq.RavenJObject * Raven.Abstractions.Data.Etag)
  
  type IDocumentFetcher =
      abstract member GetDocument<'TDocument> : string -> Async<ProjectedDocument<'TDocument> option> 
  
  [<CustomEquality; CustomComparison>]
  type UntypedDocumentProcessor<'TContext> = {
      ProcessorKey : string
      Process : IDocumentFetcher -> obj -> seq<SubscriberEvent<'TContext>> -> Async<seq<DocumentWriteRequest>>
      MatchingKeys: SubscriberEvent<'TContext> -> seq<IComparable>
  }
  with
  