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



使用以下示例模块:

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

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

Statei不被导出,但是如果你在ghci中加载了一个解释的模块,那么该模块的所有顶层定义都在作用域中。要隐藏没有从ghci导出的内容,编译模块并加载编译后的模块:l Exp resp ghci Exp

最新更新