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

时间:2011-11-12 23:01:25

标签: haskell module record

使用以下示例模块:

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

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

1 个答案:

答案 0 :(得分:11)

Statei未导出,但如果您在ghci中加载解释模块,则该模块的所有顶级定义都在范围内。要隐藏未从ghci导出的内容,请编译模块并加载已编译的模块:l Exp resp ghci Exp。然后只有导出的实体可用。