Que fait le mot-clé `forall` dans Haskell / GHC?

Je commence à comprendre comment le forallmot-clé est utilisé dans les soi-disant "types existentiels" comme ceci: data ShowBox = forall s. Show s => SB s Ce n'est qu'un sous-ensemble, cependant, de la façon dont il forallest utilisé et je ne peux tout simplement pas me concentrer sur son...