如何控制Haskell中记录的导出?

5

以下是示例模块:

module Exp ( initial, myval ) where
data State = State { i :: Int }
initial = State { i = 123 }
myval st = i st

在GHCI中加载模块后,我可以看到Statei名称也已被导出。我可以获取它们的类型并使用它们。如何限制导出,以便仅导出initial(一个黑盒子)和myval

在 GHCI 中加载模块后,我可以看到 Statei 名称也被导出了。我可以获取它们的类型并使用它们。如何限制只导出 initial(一个黑盒子)和 myval
1个回答

11

Statei 没有被导出,但如果你在 ghci 中加载一个解释的模块,那么该模块的所有顶级定义都在作用域内。为了隐藏没有导出的内容,编译该模块并加载编译后的模块,使用:l Expghci Exp。然后只有导出的实体是可用的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接