有没有一种简单的方法可以在通过cabal repl调用时将额外的包加载到ghci?

lef*_*out 22 haskell cabal ghc-pkg

cabal repl对于调试库非常有用,但是ghci将隐藏所有不属于cabal包的包.虽然这肯定是一件好事cabal build,因为repl它意味着我无法从不相关的软件包中加载某些内容以进行快速测试.

可以通过发布访问任何包:set -package,但是这将从我正在处理的pacakge中卸载所有模块,从而击败了cabal repl.

简单地加载我已安装的软件包,但不希望作为我的库的依赖项,这是一个很好的方法吗?

Sve*_*enK 26

cabal repl --ghc-option='-package xyz'
Run Code Online (Sandbox Code Playgroud)

这将加载您正在调用cabal repl的包和包xyz.

要在事后这样做,即当你已经在REPL中并想要从另一个包中加载一个额外的帮助器模块时:

GHCi> :set -package xyz
GHCi> :m +XYZ.Module.You.Suddenly.Need
Run Code Online (Sandbox Code Playgroud)


sla*_*vik 10

当我需要 ghci 范围内的 QuickCheck 库时,我尝试过

cabal repl --ghc-option='-package QuickCheck'
Run Code Online (Sandbox Code Playgroud)

它根本不起作用。

以下内容拯救了我的一天

cabal repl --build-depends "QuickCheck >= 2.14"
Run Code Online (Sandbox Code Playgroud)