anchor.diff:              | None -> return ()
           }
   
  -type BatchWrite = (string * MyCountingDoc * Raven.Abstractions.Data.Etag * (bool -> Async<unit>))
  +type DocumentWriteRequest = {
  +    DocumentKey : string
  +    Document : Lazy<Raven.Json.Linq.RavenJObject>
  +    Metadata : Lazy<Raven.Json.Linq.RavenJObject>
  +    Etag : Raven.Abstractions.Data.Etag
  +}
  +
  +type BatchWrite = (seq<DocumentWriteRequest> * (bool -> Async<unit>))
   
   open Raven.Abstractions.Commands
   
  
positive.code:                 cache.Set(docResult.Key, (doc, docResult.Etag) :> obj, DateTimeOffset.MaxValue) |> ignore
                  do! callback true
          | None ->
              for (docKey, _, _, callback) in docs do
                  cache.Remove(docKey) |> ignore
                  do! callback false
      }
  
negative.code:     let writeBatch _ docs = async {
          let originalDocMap = 
              docs
              |> Seq.collect (fun (writeRequests, callback) -> 
                  writeRequests
                  |> Seq.map(fun { DocumentKey = key; Document = document } ->
                      let document = document.Force()
                      (key, (document, callback))
                  )
              )
              |> Map.ofSeq
  
          let! result = BatchOperations.writeBatch documentStore docs
  