             let key = keyPath[0] as? Key,
             let subKey = keyPath[1] as? Value.Key
         else {
-            throw DictinaryTypeError.illFormedKeyPath
+            throw DictionaryTypeError.illFormedKeyPath
         }
         
         try ensureValue(for: keyPath)

     - TODO: Use subscript (keyPath: KeyPath) { get set }
     */
    public mutating func update(_ value: Value.Value, keyPath: KeyPath) throws {
        
        print("keyPathTypes: \(keyPath.map { type(of: $0) })")
        
        guard
            let key = keyPath[0] as? Key,
            let subKey = keyPath[1] as? Value.Key
        else {
            throw DictinaryTypeError.illFormedKeyPath
        }
        
        self.ensureValue(for: key)

            let key = keyPath[0] as? Key,
            let subKey = keyPath[1] as? Value.Key
        else {
            throw DictionaryTypeError.illFormedKeyPath
        }
        
        ensureValue(for: key)
