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"?

questionAnswers(3)

yourAnswerToTheQuestion