anchor.diff:                  let index = calls.Count
                   indices.[call] <- calls.Count
                   calls.Add call
  -                store.Set(index, prepareForUpload call)
  +                upload call index
                   true
           )
   
  
positive.code: 
      let indices = Dict<DrawCallInfo, int>()
      let calls = List<DrawCallInfo>()
      let store = new ManagedBuffer<DrawCallInfo>(runtime)
      
      let locked x (f : unit -> 'a) =
          lock x f
  
      // make indexed
      let prepareForUpload(call : DrawCallInfo) =
          if indexed then 
              DrawCallInfo(
                  FaceVertexCount = call.FaceVertexCount,
                  InstanceCount = call.InstanceCount,
                  FirstIndex = call.FirstIndex,
                  BaseVertex = call.FirstInstance,
                  FirstInstance = call.BaseVertex
              )
          else
              call
  
      let add x (call : DrawCallInfo) =
          locked x (fun () ->
  
negative.code:                         let last = calls.[lastIndex]
                          indices.[last] <- index
                          calls.[index] <- last
                          upload last index
                          calls.RemoveAt lastIndex
                          
                      true
  