我正在编写一个基本上包含另一个模块提供的功能的模块,因此有几个具有相同名称的值实例导入到同一个作用域中,我必须通过预先添加我想要使用的模块来消除歧义。我知道我可以使用较短的名称导入其他模块(使用as
子句),但有没有办法以相同的方式引用当前模块中的值?我已尝试导入自己的合格,但这会导致循环导入。
为了澄清,我正在寻找以下内容:
module Very.Long.Wrapper.Module.Name (fun) as Self where
import Very.Long.Module.Name.To.Be.Wrapped as M
Self.fun = doSomethingWith M.fun
或其他任何可以让我在没有整个模块名称的情况下执行最后一行的内容。
答案 0 :(得分:2)
将导入更改为
import qualified Very.Long.Module.Name.To.Be.Wrapped as M
然后你只需要限定对M.fun的引用 - 不合格的fun
将明确地引用当前模块的版本。