         }
     }
     
+    //TODO: add a reverse operation based on a result
+    
     fileprivate func checkLock() {
         assert(lock == true, "Updading datas can only be done in an update closure")
     }

            collectionView?.register(nib, forCellWithReuseIdentifier: cellData.identifier)
        }
    }
    
    fileprivate var lock:Bool = false // alow or disallow updating datas
    fileprivate var result:UpdateCollectionResult!

    public var removedCellDescriptors = [VSCollectionCellDescriptor]()
   
    public var appenedSectionsIndexSet = IndexSet()
    //TODO: add appenedSectionsDescriptor
    public var removedSectionsIndexSet = IndexSet()
    //TODO: add removedSectionsDescriptor
}

fileprivate struct CellData: Hashable {
