         throw JsonDecodeError.WrongType(rawValue: json, expectedType: "Dictionary")
       }
 
-      var errors: [String: JsonDecodeError] = [:]
+      var errors: [(String, JsonDecodeError)] = []
       var result: [Key: Value] = [:]
 
       for (key, val) in dict {

          result[key] = try decodeValue(val)
        }
        catch let error as JsonDecodeError {
          errors["\(key)"] = error
        }
      }


          result.append(try decodeElement(element))
        }
        catch let error as JsonDecodeError {
          errors.append((index, error))
        }
      }

