So definieren Sie Typklassen-Synonyme

8

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:

%Vor%

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?

    
crockeea 20.06.2014, 15:10
quelle

1 Antwort

5
  

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%     
Thomas M. DuBuisson 20.06.2014, 16:09
quelle

Tags und Links