Ich versuche den folgenden Code mit GHC zu kompilieren:
%Vor% Wenn ich nur ghc Test.hs
starte, bekomme ich:
Also probiere ich ghc -package haskell98 Test.hs
:
Es scheint nicht richtig, aber ich versuche ghc -package haskell98 -hide-package base Test.hs
:
Also versuche ich ghc -package haskell98 -hide-package base -package haskell2010 Test.hs
:
Wie kompiliere ich diesen Code? Ich benutze GHC 7.4.1.
Import Data.Maybe
. Das haskell98
-Paket ist nicht länger kompatibel mit base
, daher bringt die Verwendung der haskell98
-Module nur unnötigen Schmerz.
Die Idee ist, dass Sie genau eines von haskell98
, base
oder haskell2010
verwenden. Die haskell*
-Pakete sind die Bibliotheken, die vom entsprechenden Sprachstandard vorgeschrieben sind. Wenn Sie also eines davon verwenden, haben Sie eine bessere Chance, mit Nicht-GHC-Compilern kompatibel zu sein. Allerdings verwenden die meisten Pakete auf Hackage sowieso base
, also solltest du besser dran bleiben.
Haskell98 ist streng genommen älter als hierarchische Module, deshalb heißen sie alle Maybe
und List
und IO
und so weiter. (Eigentlich denke ich, das sind bessere Namen als das, was sie jetzt sind, aber das ist eine andere Geschichte). Ihr Problem ist, dass Sie versucht haben, die alte Maybe
und die neue System.IO
gleichzeitig zu verwenden, und weder das alte noch das neue Paket bietet beides.
Tags und Links haskell ghc package compiler-errors