Why does the following protocol fail to be used as a plain existential type (`let x: Container`) before Swift 5.7-style `any`/`some` improvements, and what category does this fall into?
protocol Container {
associatedtype Item
func first() -> Item?
}