     }
 }
 
-extension _Decoder: SingleValueDecodingContainer {
+extension ObjectDecoder.Decoder: SingleValueDecodingContainer {
 
     // MARK: - Swift.SingleValueDecodingContainer Methods
 

        if isAtEnd { throw _valueNotFound(at: codingPath + [currentKey], type, "Unkeyed container is at end.") }
    }

    private mutating func currentDecoder<T>(closure: (_Decoder) throws -> T) throws -> T {
        try throwErrorIfAtEnd(T.self)
        let decoded: T = try closure(decoder.decoder(referencing: currentObject, as: currentKey))
        currentIndex += 1

                          from object: Any,
                          userInfo: [CodingUserInfoKey: Any] = [:]) throws -> T where T: Decodable {
        do {
            return try ObjectDecoder.Decoder(object, options, userInfo).singleValueContainer().decode(type)
        } catch let error as DecodingError {
            throw error
        } catch {
