|
GADTs bieten mehr Typsicherheit und die Prüfung von bestimmten
Invarianten zur Compilezeit. Somit können weniger Laufzeitfehler
entstehen.
In bestimmten Fällen lassen sich partielle Funktionen leicht in
totale Funktionen transformieren.
Die Menge der Funktionen die sinnlos sind, aber definiert werden
können wurde eingeschränkt; jedoch gibt es gleichzeitig mehr
Funktionen die sinnvoll sind, aber nicht mehr definiert werden
können.
In bestimmten Fällen wie den Listen scheint die Benutzung von
GADTs nicht sinnvoll, da häufig zur Compilezeit noch nicht
feststeht, wie lang eine Liste ist.
In einigen Fällen wie den Abstrakten Syntax-Bäumen jedoch können
GADTs ihre Vorteile voll ausspielen.
|