如何在 haskell 堆栈项目中隐式导入模块?

问题描述 投票:0回答:1

这不是一个重要的问题,但我只是想知道堆栈中是否有一些模块(在这种情况下,cabal 并不重要)Haskell 项目,这些模块被导入到许多其他模块中,如何使它们公开 这样我就不需要继续导入它们了?我还发现导入模块也不是“可传递的”。我的意思是这不会是一个问题,但它会节省大项目中的重复。感谢您提前的帮助。

haskell haskell-stack
1个回答
1
投票
我还发现导入模块也不是传递性的。

这确实是正确的。但您可以
重新出口

物品。这是为了尽量减少进口而经常采取的做法。例如,如果您创建一个 Yesod 网络服务器,通常会有一个名为 Import 的模块,可以重新导出所有重要方面。

您只需在导出列表中提及模块范围内的变量即可重新导出。例如,我们可以创建一个模块 

Import

,从两个模块导出

maybe
either
module Import (maybe, either) where

import Data.Either (either)
import Data.Maybe (maybe)

然后导入 
Import

模块,我们在范围内得到

maybe
either
,它们源自两个不同的模块。
    

© www.soinside.com 2019 - 2024. All rights reserved.