GADT vs Existentiell quantifizierte Typen (* forall *)

8

Man kann GADT verwenden, um Existentiell quantifizierte Typen auszudrücken.

Ich sehe, dass GADT generischer ist - Datentyperweiterungen , Abschnitt Abschnitt 7.4.7

Wenn es besser ist Existentiell quantifizierte Typen zu verwenden, dann GADT ? Gibt es Nachteile bei der Verwendung von GADT im Vergleich zu existenziell quantifizierten Typen ?

?     
Robert Zaremba 03.08.2014, 10:36
quelle

2 Antworten

11

GADTs kamen später als Existenzen, und sie verallgemeinern sie. Ich kenne keine Nachteile und würde immer die GADT-Syntax im neuen Code verwenden, da es viel klarer ist.

Die Dokumentation bestätigt dies:

  

Beachten Sie, dass die GADT-artige Syntax existentielle Typen verallgemeinert.

    
Ganesh Sittampalam 03.08.2014, 11:22
quelle
2

Wenn Sie die neueste Version von GHC verwenden, sind mir keine Nachteile bekannt. Aber in älteren Versionen konnten Sie GADTs und GeneralizedNewtypeDeriving typsicher kombinieren. Ich glaube nicht, dass das mit ExistentialQuantification möglich war.

    
MigMit 03.08.2014 12:02
quelle