O que é predicatividade?
Tenho uma intuição bastante decente sobre os tipos que Haskell proíbe como "impredicativos": ou seja, aqueles em que umforall
aparece em um argumento para um construtor de tipo diferente de->
. Mas exatamente o que é predicatividade? O que o torna importante? Como isso se relaciona com a palavra "predicado"?