Ich bin Fehler grob wie folgt erhalten:Aufprägezustand Art Familie forall Gleichheiten
Could not deduce T1 p (T2 p a b) ~ (a, b)
aus einer Funktionsdeklaration, wo T1
und T2
sind Typ Familien.
Die Gleichheit gilt jedoch für alle p
, a
und b
.
Ich kann es beheben, indem Sie fügte hinzu:
T1 p (T2 p a b) ~ (a, b)
Aber dann etwa wie folgt ich:
Could not deduce T1 p (T2 p a c) ~ (a, c)
Schließlich kann ich auf die Funktion genug Gleichheitsbeschränkungen hinzuzufügen, den Fehler zu töten.
Die Alternative ist, keine Funktionssignatur zu definieren, der Compiler leitet etwas Schreckliches ab, aber es funktioniert gut.
Aber ist es eine Möglichkeit, ich mich dies nur alle auf einmal abdecken kann, so etwas wie
forall p a b. T1 p (T2 p a b) ~ (a, b)
sagen kann?
Was waren 'T1' und T2' übrigens? – Alec
Bitte fügen Sie ein vollständiges Beispiel von dem, was Sie versuchen, hinzu. Diese Frage ist nicht wahrnehmbar. – dfeuer
"folgende Gleichheit ist wahr" - Woher weißt du, dass es wahr ist? Ist die Frage nach dem GHC-Test so, dass Sie die Typgleichheitsbedingung in Ihren Typ-Signaturen weglassen können? – chi