anchor.diff:                          dirtyGeometries.Remove geometry |> ignore
                       | _ ->
                           ()
  +
  +        member x.Reset() =
  +            Marshal.FreeHGlobal storage
  +            storage <- 0n
  +            dirtyGeometries.Clear()
  +            lock readers (fun () -> for r in readers do r.Reset())
   
           override x.Compute() =
               let ptrs, capacity = input.GetValue(x)
  
positive.code:                                 for b in buffers.Values do b.RemoveGeometry(g)
                                  manager.Free ptr
                                  ptrs.Remove g |> ignore
                              | _ ->
                                  ()
  
  
negative.code:                     b, dirty
              )
      
          member x.Reset() =
              initial <- true
              dirty <- RangeSet.empty
  
          member x.AddDirty (r : Range1i) =
              Interlocked.Change(&dirty, RangeSet.insert r) |> ignore
  
  