如何处理Haskell Prelude命名空间冲突?

Jon*_*han 0 haskell

如果我想使用readFilefrom Data.Text.IO,但是readFilePrelude中已经存在,我该如何导入它,这样就不会导致歧义错误?

我有一个脚本,只是说import Data.Text.IO,然后使用readFile,我正在ghci使用:load它测试它,但它抱怨模糊的函数调用.

Sil*_*olo 6

有两种解决方案.

import qualified Data.Text.IO as T
Run Code Online (Sandbox Code Playgroud)

这将为您提供Data.Text.IO功能T.readFile.但是,如果您只打算使用该Data.Text.IO版本而不打算使用该版本,则Prelude可以排除该Prelude版本.

import Prelude hiding (readFile)
import Data.Text.IO
Run Code Online (Sandbox Code Playgroud)

显式import Prelude将覆盖默认导入Prelude,您可以控制导入的名称.