如果我想使用readFile
中的Data.Text.IO
,但Prelude中已经有readFile
,我该如何导入它,以便它不会出现这种情况。导致歧义错误?
我有一个脚本只是说import Data.Text.IO
然后使用readFile
,我在ghci
使用:load
对其进行测试,但它抱怨模糊函数调用。
答案 0 :(得分:6)
有两种解决方案。
import qualified Data.Text.IO as T
这会为Data.Text.IO
功能提供T.readFile
。但是,如果您只打算使用Data.Text.IO
版本而不使用Prelude
版本,则可以排除Prelude
版本。
import Prelude hiding (readFile)
import Data.Text.IO
显式import Prelude
将覆盖Prelude
的默认导入,您可以控制导入哪些名称。
答案 1 :(得分:2)
import qualified Data.Text.IO as DTIO
,然后您可以使用DTIO.readfile
。
有关详细信息,请参阅https://wiki.haskell.org/Import