Der folgende Code, der wörtlich von LYAH lautet, wird nicht kompiliert. Code- und Kompilierzeitfehler sind unten enthalten. Auf der LYAH-Seite ist der Code ~ 15% auf der Seite, yay emacs browser:)
Irgendwelche Ideen warum? Betrachte ich etwas völlig Offensichtliches?
(Trotz der Ähnlichkeit in den Posttiteln denke ich, dass meine Frage anders ist als dieser .)
Hier ist der Code (in einer Datei, die ich testcopy.hs
genannt habe)
Und hier ist der Kompilierungsfehler:
%Vor% LYAH ist in diesem Beispiel veraltet. Sie sollten die Konstruktormethode writer
smart anstelle des (jetzt nicht vorhandenen) Writer
-Datenkonstruktors verwenden.
Um ein bisschen zu erweitern, wurden diese Datentypen aktualisiert, um besser mit Monad-Transformatoren kompatibel zu sein. Daher gibt es ein allgemeines WriterT
für die Verwendung in einem Monad-Transformer-Stack und ein Writer
type-Synonym, das WriterT
mit Identity
zusammensetzt. Aus diesem Grund gibt es nicht mehr einen Datenkonstruktor, der speziell dem Writer
-Typ zugeordnet ist (da Writer
ein Typ-Synonym ist).
Glücklicherweise ist die Lösung trotz dieser Komplikation ziemlich einfach: Ersetzen Sie Writer
durch writer
.