 /**
 An extension of `Collection`, which calculates the diff between two collections.
 */
-public extension Collection where Iterator.Element: Equatable {
+public extension Collection where Element: Equatable {
 
     /**
     Returns the diff between two collections.

    }
    
    /// Construct the `Diff` between two given collections.
    public init<C: Collection>(_ old: C, _ new: C) where C.Index == Index, C.Iterator.Element: Equatable {
        self = old.diff(new)
    }
    

        while i != 0 && j != 0 {
            if lengths[i &* columns &+ j] == lengths[(i &- 1) &* columns &+ j] {
                i = i &- 1
                index = self.index(self.startIndex, offsetBy: indexOffset)
            } else if lengths[i &* columns &+ j] == lengths[i &* columns &+ j &- 1] {
                j = j &- 1
