public protocol AsyncIteratorProtocol { associatedtype Element mutating func next() async throws -> Element? mutating func cancel() }