如何重新导出合格的导入模块?

时间:2014-04-09 20:26:36

标签: haskell module export

如何在haskell中重新导出合格的导入模块?有可能吗?

示例:我有两个文件。文件Utils.hs,代码为:

module Utils (...) where

import qualified Data.Map as Map

和文件main.hs

import Utils

main = putStrLn $ show $ Map.fromList [(1,2),(3,4)]

我必须在文件...中放置Utils.hs而不是fromList [(1,2),(3,4)],以便上述文件编译并将Utils.hs打印到标准输出?

目标:通过import UtilsData.Map导入另一个文件后,我希望能够访问代码为{{1的Map.<function or data name>的函数和类型因此,通过写import Utils,我不必再写import qualified Data.Map as Map了。这可能吗?

注意: Haskell re-export module in addition to everything defined within module处存在类似的问题。不幸的是,答案在这种情况下无济于事。

到目前为止我尝试了什么:以下代码

module Utils (module Map) where

import qualified Data.Map as Map

编译,但如果我尝试编译main.hs:3:26: Not in scope: `Map.fromList',我会收到错误main.hs

1 个答案:

答案 0 :(得分:9)

你要求的是不可能的。只有在导入表单

时才会成功解析Map.fromList
import [qualified] Map

import [qualified] ... as Map