Quel est le but de Rank2Types?

Je ne suis pas vraiment compétent dans Haskell, donc cela pourrait être une question facile.

Quelle langue limitation ne Rank2Types résoudre? Ne pas les fonctions en Haskell déjà soutien polymorphes arguments?