     }
 }
 
-extension DictionaryProtocol where Value: ArrayType {
+extension DictionaryProtocol where Value: ArrayProtocol {
 
     /// Ensure that an Array-type value exists for the given `key`.
     public mutating func ensureValue(for key: Key) {

    Value: DictionaryProtocol,
    Iterator.Element == (Key, Value),
    Value.Iterator.Element == (Value.Key, Value.Value),
    Value.Value: ArrayType,
    Value.Value.Element: Equatable
{


    Value: DictionaryProtocol,
    Iterator.Element == (Key, Value),
    Value.Iterator.Element == (Value.Key, Value.Value),
    Value.Value: ArrayProtocol
{

    /// Ensure that there is an Array-type value for the given `keyPath`.
    public mutating func ensureValue(for keyPath: KeyPath) throws {

        guard
