  | 
                        
						    
                 
                
                
    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.
     
              |