GHCI - 无法加载接口

时间:2017-11-02 00:43:21

标签: haskell ghci

重现git clone https://github.com/ndmitchell/hooglestack repl

λ > :l src/Hoogle.hs 
[ 1 of 27] Compiling Input.Settings   ( src/Input/Settings.hs, interpreted )

src/Input/Settings.hs:17:1: error:
    Failed to load interface for ‘Paths_hoogle’
    Use -v to see a list of the files searched for.
Failed, modules loaded: none.

这似乎是由Paths_hoogle作为隐藏模块引起的,但我不知道解决方案是什么让src/Hoogle.hs加载。

2 个答案:

答案 0 :(得分:2)

hoogle项目没有stack.yaml,因此stack无法识别它在项目中。 stack replstack ghci将在隐式全球项目中打开GHCi环境。

stack检查当前目录中的.cabal文件是否明智,并警告它是否在stack项目中。

我可以通过执行stack init来生成初始stack.yaml文件来加载库。然后stack replstack ghci都运行良好,加载了暴露的隐藏模块。

答案 1 :(得分:1)

解决方案是使用以下方式运行GHCI repl:

cabal repl lib:hoogle

这会自动加载Hoogle模块:

Ok, modules loaded: Action.CmdLine, Action.Generate, Action.Search, Action.Server, Action.Test, General.Conduit, General.IString, General.Log, General.Store, General.Str, General.Template, General.Timing, General.Util, General.Web, Hoogle, Input.Cabal, Input.Download, Input.Haddock, Input.Item, Input.Reorder, Input.Set, Input.Settings, Output.Items, Output.Names, Output.Tags, Output.Types, Paths_hoogle, Query.
λ > defaultDatabaseLocation 
"/home/neo/.hoogle/default-haskell-5.0.13.hoo"