假设我有一个模块 A
,定义了名称 b
、c
。
现在我希望以某种方式导入 A,并且应该可以访问以下名称:
A.b
A.c
c
其中隐藏了非限定名称 b
。
我尝试的方法是通过两种方式导入A两次:
import A hiding (b)
import qualified A (b)
但是好像没有达到上面描述的效果。那么正确的方法是什么?
最佳答案
你应该能够做到
import A (c)
import qualified A
或者
import A hiding (b)
import qualified A
它应该只允许您访问c
,然后使用限定语法访问A
内的所有内容。如果您在 GHCi 中对此进行测试,请记住 GHCi 有一些额外的特殊内容,以允许它在从源代码加载的模块内进行更多访问,因为它的主要用途是探索和调试。
关于haskell - 正确导入模块,其中某些定义仅对限定名称可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738575/