Aur*_*ier 14 import haskell module haskell-stack
首先,我创建了一个新工作区:
stack new xxxx
stack init
stack build
Run Code Online (Sandbox Code Playgroud)
然后
cd xxx\app
stack ghci
import Data.Map
Run Code Online (Sandbox Code Playgroud)
我可以导入像Data.Char和的其他模块Data.List,但我无法导入Data.Map.GHCi告诉我:
Could not find module 'Data.Map'
It is a member of the hidden package 'containers-0.5.7.1@containers-0.5.7.1'.`
Run Code Online (Sandbox Code Playgroud)
tor*_*tte 27
这些一般步骤有助于我解决类似的问题:
需要注意的是Hoogle和Stackage是区分大小写的.仰望Data.Map在Hoogle产生类似下面的一个列表.Stackage的风格略有不同,但基础是相同的(主要是因为它也使用Hoogle进行查找).
结果标题下的绿色线条显示包含的名称
(1)包装(小瓶盖)和
(2)模块(大写).
在项目根目录中打开project-name.cabal 并添加所需的包 build-depends:
library
hs-source-dirs:
src
build-depends:
base >= 4.7 && < 5
, containers
exposed-modules:
Lib
Run Code Online (Sandbox Code Playgroud)发行 stack build 下载和编译依赖
(或者stack ghci如果你计划在repl中使用它)
cro*_*eea 15
你可以导入的原因Data.Char,并Data.List为他们包的一部分base,它是包含在GHC并始终装有GHCI.相比之下,Data.Map是在外部库中containers.加载它的一种方法stack ghci是添加一个带有build-dependson 的cabal文件containers.这将把它安装在堆栈环境中xxxx,因此可以访问它.
我的情况是,我必须添加containers依赖项package.yaml,而不是直接将依赖项添加到.cabal文件中:
dependencies:
- base >= 4.7 && < 5
- containers
Run Code Online (Sandbox Code Playgroud)