     }
 }
 
-extension ObservableCollectionChange where UnderlyingCollection.Index == Int {
+extension ObservableCollectionChange where Index == Int {
     public var asDataSourceEventKind: DataSourceEventKind {
         switch self {
         case .reset:

            return indices
        }

        func insertionsPatch(_ indices: [UnderlyingCollection.Index]) -> [UnderlyingCollection.Index] {
            var indices = indices
            for i in 0..<indices.count {
                let pivot = indices[i]


        // use proxy to collect changes
        let proxy = MutableObservableCollection(collection)
        var patch: [ObservableCollectionChange<UnderlyingCollection.Index>] = []
        let disposable = proxy.skip(first: 1).observeNext { event in
            patch.append(event.change)
        }
