如何在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.hsimport Utils导入另一个文件后,我想使用代码Data.Map来访问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

最佳答案

您要的是不可能的。 Map.fromList仅在导入表单时才能成功解析

import [qualified] Map

或者
import [qualified] ... as Map

关于haskell - 如何重新导出合格的导入模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22973256/

10-11 14:48