anchor.diff:          this.semaphoreTask <- Unchecked.defaultof<_>
           this.token <- Unchecked.defaultof<_>
           this.tcs <- Unchecked.defaultof<_>
  -      GC.SuppressFinalize(this)
  +      if disposing then GC.SuppressFinalize(this)
   
       // C#-like methods to avoid casting to ICursor all the time
       member this.Reset() = this.state.Reset()
  
positive.code:     finally
        exitWriteLockIf &this.locker entered
  
    override this.Finalize() = this.Flush()
  
    member this.GetCursorOld() : ICursor<'K,'V> =
      let entered = enterLockIf this.SyncRoot this.IsSynchronized
  
negative.code:             let mutable c = 0
              for i in appendMap do
                c <- c + 1
                this.AddUnchecked(i.Key, i.Value) // TODO Add last when fixed flushing
              c
            elif comparer.Compare(appendMap.First.Key, this.Last.Key) > 0 then
              let exn = SpreadsException("values do not overlap with existing")
  