1

我最近下载了 ghci,但是当我尝试编译我的 .hs 文件时,它说 IO 模块位于隐藏包 haskell98-2.0.0.1 中。当我使用 暴露它时ghc-pkg expose haskell98-2.0.0.1,它的基础和前奏就出现了问题,说前奏是模棱两可的。

我怎样才能解决这个问题,以便我可以正确编译我的程序?提前致谢。

4

2 回答 2

2

如果你使用 ghc,你应该使用 System.IO 模块,它是base包的一部分。Haskel-98 是……好吧,现在已经过时了。如果你想坚持使用haskell-98(这将使大多数现有库无法使用),你应该公开haskell98和隐藏base,因为两者都base包含haskell98模块Prelude,所以编译器无法猜测要导入哪一个,它必须导入前奏一些方式因为标准。

于 2012-12-26T17:53:40.803 回答
0

在这里要做的正确的事情(正如 permeakra 指出的那样)是使用System.IO模块,这是通过放置

import System.IO

在文件顶部附近(在模块声明下(如果有的话),但在其他所有内容之上)。

于 2012-12-26T21:55:34.453 回答