What makes `impl Trait` as an argument “universal” and as a return value “existential”?

The RFC defines the terms multiple times in multiple manners: between existential types (where the callee chooses the type) and universal types (where the caller chooses) There’s been a lot of discussion around universals vs. existentials (in today’s Rust, generics vs impl Trait). Universal quantification, i.e. “for any type T”, i.e. “caller chooses”. This is … Read more