使用GHCi加载模块而无需访问其源代码

时间:2011-09-17 16:52:08

标签: haskell ghci hint

我创建了一个简单的模块TestModule.hs,其中包含一个导出的顶级定义testval = 2。我编译它,创建TestModule.oTestModule.hi。我删除 TestModule.hs。然后我在TestModule.o中加载ghci,如下所示:

~ λ ghci TestModule.o
GHCi, version 7.0.3.20110517: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Loading object (static) TestModule.o ... done
final link ... done
Prelude>

如您所见,TestModule不在范围内,我无法访问testval。为什么?如何在不访问源文件的情况下完成此操作?

其他问题:如何使用hint包完成同样的事情?

谢谢!

1 个答案:

答案 0 :(得分:2)

你无法解释已经编译过的东西。如果你想解释它,你需要源。如果你愿意,你可以制作一个包裹。说明为here