我最近下载了 ghci,但是当我尝试编译我的 .hs 文件时,它说 IO 模块位于隐藏包 haskell98-2.0.0.1 中。当我使用 暴露它时ghc-pkg expose haskell98-2.0.0.1
,它的基础和前奏就出现了问题,说前奏是模棱两可的。
我怎样才能解决这个问题,以便我可以正确编译我的程序?提前致谢。
我最近下载了 ghci,但是当我尝试编译我的 .hs 文件时,它说 IO 模块位于隐藏包 haskell98-2.0.0.1 中。当我使用 暴露它时ghc-pkg expose haskell98-2.0.0.1
,它的基础和前奏就出现了问题,说前奏是模棱两可的。
我怎样才能解决这个问题,以便我可以正确编译我的程序?提前致谢。
如果你使用 ghc,你应该使用 System.IO 模块,它是base
包的一部分。Haskel-98 是……好吧,现在已经过时了。如果你想坚持使用haskell-98(这将使大多数现有库无法使用),你应该公开haskell98
和隐藏base
,因为两者都base
包含haskell98
模块Prelude
,所以编译器无法猜测要导入哪一个,它必须导入前奏一些方式因为标准。
在这里要做的正确的事情(正如 permeakra 指出的那样)是使用System.IO
模块,这是通过放置
import System.IO
在文件顶部附近(在模块声明下(如果有的话),但在其他所有内容之上)。