12

我正在编写一个具有大量需要导出的功能的模块。该模块还有大量的数据结构。

假设我的模块包含以下内容:

module MyUtils (A(..), B(..),C(..),D(..),f1,f2,f3,f4,f5,f6) where
--Data constructors
data A = ...
data B = ...
data C = ...
data D = ...
--functions
f1 :: A -> B
f2 :: A -> B -> C
f3 :: A -> B -> D
f4 :: A -> B -> A
f5 :: A -> B -> B
f6 :: A -> B

我在这里看到了 Data.Map 源 它显示它正在导出一个非常大的列表中的大量函数。

但是如果我想导出所有东西,可以用一种快捷的方法来完成,比如,

module MyUtils (..) where

?

4

2 回答 2

21

是的,(..)完全省略掉。默认情况下,会导出所有名称。

module MyUtiles where
...

如果您要导出大量功能以及要隐藏的少量功能,最好将隐藏的功能放在另一个模块中并导入。

于 2013-07-07T16:28:24.580 回答
1

您也可以通过以下方式进行操作:

module MyUtiles (module MyUtiles) where

有时需要(或要求)使用导出列表。例如,如果您想导出当前模块中的所有内容并从另一个模块重新导出绑定。

于 2021-05-06T20:34:44.647 回答