GHC 8.0 verfügt über eine Funktion für benutzerdefinierte Typfehler . Ich probiere das aus, aber ich kann es nicht richtig machen, was ich will:
%Vor% Die ersten vier Definitionen von main
funktionieren wie erwartet:
Pair error
Unsupported type: Bool
Unsupported type: Bool
Für die fünfte Definition möchte ich Unsupported type: Bool
anzeigen, aber GHC zeigt:
No instance for (Dispatch' (EqCType (TypeError ...) DoubleD) (Bool, Double))
Ich bin verwirrt, warum GHC die ersten drei Fehler korrigiert hat, zeigt aber meinen Typfehler in der endgültigen Definition nicht an. Ich suche nach einer kurzen Erklärung zu warum und einem Workaround, falls möglich. Ist dies nur eine Einschränkung der Implementierung von benutzerdefinierten Typfehlern?