Erklärung für "Illegale Synonymfamilie"

8

Ich bin nur neugierig, warum ich das schreiben muss,

%Vor%

statt dessen

%Vor%

wo

%Vor%

Was ist die Tilde überhaupt? Vielen Dank.

    
gatoatigrado 23.09.2011, 01:21
quelle

1 Antwort

2

Ich denke, das Problem ist, dass alles auf der rechten Seite von %Code% muss entweder ein Typkonstruktor oder eine Typvariable sein. AusdrTyp könnte sich auf mehrere Konstruktoren unterschiedlichen Typs beziehen. Dies durch eine Gleichheitsbedingung zu ersetzen, wird zwar funktionieren, aber die resultierende Instanz wird effektiv nutzlos sein, da der Compiler nichts über => ableiten kann, da es sich um einen ExprTyp handelt - ExprTyp könnte Alias ​​sein. p>

In meiner Situation - ich versuche eine DSL-Monade zu schreiben - besteht die Lösung darin, alle Verwendungen des zugehörigen Typs in einen newtype-Konstruktor zu schreiben. Zum Beispiel, wenn wir mit beginnen,

%Vor%

Dann wird das Umbrechen zu

führen %Vor%

Dann könnten zum Beispiel die Variablendeklarationen (ich schrieb Code für Tupel-Variablendeklarationen)

sein %Vor%

Bitte posten Sie einen Kommentar, wenn etwas unklar ist.

    
gatoatigrado 23.09.2011, 02:29
quelle

Tags und Links