【问题标题】:How do I reexport qualified imported modules?如何重新导出合格的导入模块?
【发布时间】:2014-04-09 20:26:36
【问题描述】:

如何在 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)] 打印到标准输出?

目标: 在通过import Utils 在另一个文件中导入Utils.hs 后,我想使用代码Map.<function or data name> 访问Data.Map 的功能和类型,即这样写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,则会收到错误 main.hs:3:26: Not in scope: `Map.fromList'

【问题讨论】:

  • 无法导出合格的模块:stackoverflow.com/questions/3207647/…
  • @user2407038:感谢您的链接。不幸的是,我找不到解决方案(请参阅我的扩展问题)。你能提供一个运行的例子吗?

标签: haskell module export


【解决方案1】:

你所要求的是不可能的。 Map.fromList 只有在导入表单时才会成功解析

import [qualified] Map

import [qualified] ... as Map

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多