-public struct OrderedDictionary<Key: Hashable, Value>: MutableCollection, BidirectionalCollection {
+public struct OrderedDictionary<Key: Hashable, Value>: BidirectionalCollection {
 
     // ======================================================= //
     // MARK: - Type Aliases

    // MARK: - Slices
    // ======================================================= //
    
    public subscript(bounds: Range<Index>) -> SubSequence {
        get {
            return OrderedDictionarySlice(base: self, bounds: bounds)
        }
        set(newSequence) {
            for (index, element) in newSequence.enumerated() {
                fatalError("set element \(element) for index \(index)")
            }
        }
    }
    
    // ======================================================= //

    
}

/// Creates an ordered dictionary initialized from a dictionary literal.
extension OrderedDictionary: ExpressibleByDictionaryLiteral {
    
    public init(dictionaryLiteral elements: (Key, Value)...) {
