我有一个名为的haskell包prime-tools.当我stack ghci在包目录中使用时,我希望它能够ghci自动打开一个交互式import prime-tools.相反,我发现它加载了.cabal文件中声明的所有模块.
例如,以下是我的.cabal文件中的摘录,显示了声明了哪些模块:
library
-- Modules exported by the library.
exposed-modules: PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas
-- Modules included in this library but not exported.
other-modules: PrimeTools.Extras
Run Code Online (Sandbox Code Playgroud)
这是在项目文件夹中ghci>运行后收到提示时发生的情况stack ghci:
Ok, modules loaded: PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas, PrimeTools.Extras.
ghci>
Run Code Online (Sandbox Code Playgroud)
这个问题加载模块,而不是import prime-tools是,我现在可以使用在所有的模块定义的所有功能,无论他们是否出口.
这种区别引起的问题的一个例子:包prime-tools中有两个模块,它们具有一个被称为函数的实现pfactor.其中一个是导出的,打算由程序包的最终用户使用,而另一个仅供内部使用而不导出.
在有人评论之前,有充分的理由有两个实现pfactor,但它与我的问题无关.
我的问题:如何使用本地版本stack自动启动ghci环境ghc …