![]() |
1
2
这里是Thomas Eding解决方案的一个变体,类型较少。基本上,您可以导入(在序曲中)隐藏一些函数的序曲,然后重新导出序曲;这将导出减去这些函数的序曲。此技术通常用于编写前端模块,只在库中重新导出某些函数。
然后你也可以再出口
在这里,我用等价物替换了一些前奏函数(例如
用途:
也就是说,注意
如果你尝试替换的建议
GHCI会告诉你
|
![]() |
2
7
为什么它在GHCI中有效,但在现实中无效?
因为在您的ghci会话中,您在
你的猜测是正确的-在每个模块中使用
模块导出的名称是不合格的;这些名称的限定性在模块导入时决定。 多年来,有人提议允许出口合格的名称,但迄今为止没有实施任何措施。 |
![]() |
3
6
关于内隐
为什么会变得更丑?因为您可能需要导入被认为是理所当然的数据类型和函数,甚至是代码中未显式使用的函数:
我告诉过你这不是因为这是一个很好的解决方案,而是为了知道有这样一件事。 |
![]() |
4
2
你可以做一个
当然你必须在
澄清: 前奏曲
|
![]() |
5
2
我已经重新阅读了你的问题和一些评论,我想你最接近你想要的是这样的:
基本上,
嗯,这是件好事。您不应该决定某人如何以及在他自己的模块中导入什么。 |