In dem Bestreben, eine vernünftige (r) Alternative zu Haskells numerischem Typsystem zu schaffen, sind die Entwickler von numeric-prelude rutschte auf und entschied sich, all ihre Typklassen C
zu nennen. Abgesehen davon, dass ich die Dokumente völlig verwirre, bedeutet das, dass ich alle Verwendungen der Typklassen vollständig qualifizieren muss:
Da NumericPrelude feinkörnigere Typklassen aufweist, muss ich normalerweise mehrere verschiedene NumericPrelude-Module importieren. Ich kann dies ein wenig vereinfachen, indem ich Constraint-Synonyme der obersten Ebene definiere:
%Vor%was mir erlaubt, vernünftige Funktionen zu machen:
%Vor%Wenn ich jedoch eine Instanz definieren muss, muss ich (noch) die ursprüngliche NumericPrelude-Klasse importieren:
%Vor% Anstatt also Additive
a Synonym mit% Constraint
zu schreiben, würde ich wirklich gerne eine Typklasse Synonym für die Typklasse Algebra.Additive.C
. Gibt es eine Möglichkeit, dies in GHC 7.8 zu tun, oder gibt es eine sinnvolle Alternative?
Sie müssen sich vollständig qualifizieren
Nein, nicht vollständig qualifiziert. Überlegen Sie:
%Vor%Das sieht mir ziemlich gut aus.
BEARBEITEN:
Ziehen Sie auch in Betracht, eine Superklasse zu erstellen und diese als Alias zu behandeln:
%Vor%