我正在尝试仅从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)

最佳答案

看起来GHCi正在加载您的模块以供您检查,即将您放入模块范围内。关于提示的两个提示是*Hiding>提示和您访问隐藏函数的事实。

编辑:
到此为止:http://www.haskell.org/ghc/docs/latest/html/users_guide/interactive-evaluation.html#id3045728

08-19 16:37