Haskell &引用;“不明确事件”;即使在合格的导入之后也会出错

Haskell &引用;“不明确事件”;即使在合格的导入之后也会出错,haskell,Haskell,以下是我的代码片段: import Control.Monad.State as S get x = x + 1 现在,如果我尝试使用get,我会得到以下错误: Ambiguous occurrence `get' It could refer to either `Main.get', defined at twitter.hs:59:1 or `S.get', imported from Cont

以下是我的代码片段:

import Control.Monad.State as S
get x = x + 1
现在,如果我尝试使用
get
,我会得到以下错误:

Ambiguous occurrence `get'
It could refer to either `Main.get', defined at twitter.hs:59:1
                      or `S.get',
                         imported from Control.Monad.State at twitter.hs:15:1-31

既然我导入了
Control.Monad.State
作为一个合格的模块,它不应该自动选择
Main
中的
get
函数吗?为什么会发生这种冲突?如何修复它?

您需要使用
导入合格的Control.Monad.State as S
。跳过
qualified
关键字将
S.get
get
等都纳入范围

如果导入声明使用了
qualified
关键字,则仅将实体的
qualified
名称纳入范围。如果省略了限定关键字,则实体的限定名称和非限定名称都将纳入范围

见第5.3.2节和第5.3.4节