O que torna o `impl Trait 'como um argumento“ universal ”e como um valor de retorno“ existencial ”?

Eu estava lendo oRFC no implemento "em expansão" quando me deparei com o seguinte:

Por outro lado, um programador que aprendeu pela primeira vez:fn take_iter(t: impl Iterator) e então tentei:fn give_iter() -> impl Iterator seria bem-sucedido, sem nenhum entendimento rigoroso de que eles apenas passaram de um universal para um existencial.

Enquanto eu entendo universal versus existencial de uma perspectiva lógica, o que torna o primeiro acima universal e o segundo existencial?

questionAnswers(1)

yourAnswerToTheQuestion