 
     public func optionalDateValue(timeIntervalSince1970In json: Any) throws -> Date? {
         let interval: TimeInterval? = try optionalValue(in: json)
-        return interval.flatMap(Date.init(timeIntervalSince1970:))
+        return interval.flatMap { Date(timeIntervalSince1970: $0) }
     }
 
     public func dateValue(timeIntervalSince1970In json: Any) throws -> Date {

    }

    public func unarchivedValue<T: JSONCoding>(in json: Any, _ unarchiver: JSONUnarchiving) throws -> T {
        return try anyValue(in: json, unarchiver, transform: unarchiver.unarchived(with:))
    }

    public func optionalUnarchivedValues<T: JSONCoding>(mappedIn json: Any, _ unarchiver: JSONUnarchiving) throws -> [T]? {
        return try optionalValue(in: json, unarchiver, transform: unarchiver.unarchived(map:))
    }

    public func unarchivedValues<T: JSONCoding>(mappedIn json: Any, _ unarchiver: JSONUnarchiving) throws -> [T] {
        return try value(in: json, unarchiver, transform: unarchiver.unarchived(map:))
    }

    public func optionalUnarchivedValues<T: JSONCoding>(discardingErrorsMappedIn json: Any, _ unarchiver: JSONUnarchiving) throws -> [T]? {
        return try optionalValue(in: json, unarchiver, transform: unarchiver.unarchived(discardingErrorsMap:))
    }

    public func unarchivedValues<T: JSONCoding>(discardingErrorsMappedIn json: Any, _ unarchiver: JSONUnarchiving) throws -> [T] {
        return try value(in: json, unarchiver, transform: unarchiver.unarchived(discardingErrorsMap:))
    }

    public func optionalAnyValue<U>(in json: Any, _ unarchiver: JSONUnarchiving, transform: (Any) throws -> U) throws -> U? {
        let optionalValue = try optionalAnyValue(in: json)
        return try optionalValue.flatMap { value in
            try pushed(on: unarchiver, do: transform)
        }
    }

    public func optionalAnyValue<U>(in json: Any, _ unarchiver: JSONUnarchiving, optionalTransform: (Any) throws -> U?) throws -> U? {
        let optionalValue = try optionalAnyValue(in: json)
        return try optionalValue.flatMap { value in
            try pushed(on: unarchiver, do: optionalTransform)
        }
    }


    }

    public func optionalUnarchivedValue<T: JSONCoding>(in json: Any, _ unarchiver: JSONUnarchiving) throws -> T? {
        return try optionalAnyValue(in: json, unarchiver) {
            try unarchiver.unarchived(with: $0)
        }
    }

    public func optionalUnarchivedValue<T: JSONCoding>(discardingErrorsIn json: Any, _ unarchiver: JSONUnarchiving) throws -> T? {
