Eu li o artigo da Wikipedia Tipos existenciais . Concluí que eles são chamados de tipos existenciais por causa do operador existencial (∃). Não tenho certeza de qual é o objetivo disso. Qual é a diferença entre T = ∃X { X a; int f(X); } e T = ∀x { X a; int f(X);