我正在尝试从Haskell模块中导出一个名称的子集,但是ghci很高兴让我访问隐藏的名称。
module Hiding (shown, calc) where
calc = shown * hidden
shown :: Int
shown = 3
hidden :: Int
hidden = 2
但是当我在ghci中尝试这个时,我得到了:
Prelude> :l Hiding.hs
[1 of 1] Compiling Hiding ( Hiding.hs, interpreted )
Ok, modules loaded: Hiding.
*Hiding> hidden
2
我做错了什么?
(编辑:为了它的价值,我在Arch Linux上使用ghci 6.12.3)
答案 0 :(得分:5)
看起来GHCi正在加载您的模块供您检查,即将您置于模块的范围内。提示的两个提示是提示*Hiding>
以及您访问隐藏功能的事实。
编辑:
最后是:http://www.haskell.org/ghc/docs/latest/html/users_guide/interactive-evaluation.html#id3045728
答案 1 :(得分:0)
在我看来,你做的正确。如果你试图从另一个模块引用该模块,我敢打赌hidden
拒绝工作。可能是GHCI无所不知:)