我在Fedora 28系统上安装了以下RPM软件包:
ghc-ghc-8.2.2-66
ghc-containers-0.5.10.2-66
根据hackage,设置的模块应包含在给定的RPM中。但是,尝试import Data.Set
会导致
<no location info>: error:
Could not find module ‘Data.Set’
Perhaps you meant Data.Int (from base-4.10.1.0)
我错过了要安装的东西吗?如何检查可用的模块?
编辑:
$ ghc-pkg list
/usr/lib64/ghc-8.2.2/package.conf.d
base-4.10.1.0
ghc-prim-0.5.1.1
integer-gmp-1.0.1.0
rts-1.0
如何注册模块?
答案 0 :(得分:1)
对于像我这样的新手,您需要将containers
添加到package.yaml依赖项中,以便导入Data.Set
。我的package.yaml依赖关系看起来像这样,以使Data.Set
导入能够正常工作:
dependencies:
- base >= 4.7 && < 5
- containers > 0.6
然后您可以导入Data.Set到文件中,例如
import Data.Set (Set)
import qualified Data.Set as Set
答案 1 :(得分:0)
我会跳过操作系统软件包,而选择stack
:
$ wget -o get-stack.sh https://get.haskellstack.org/
$ chmod +x get-stack.sh
$ ./get-stack.sh -d ~/.local/bin
$ echo 'export PATH="~/.local/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
$ stack --version
Version 1.7.1, Git revision ...
然后使用stack ghc
运行GHC;它将首次安装此版本:
$ stack ghc
Writing implicit global project config file to: ...
Note: You can change the snapshot via the resolver field there.
Using latest snapshot resolver: lts-12.9
Downloaded lts-12.9 build plan.
Preparing to install GHC to an isolated location.
答案 2 :(得分:0)
ghc-containers
仅包含共享库(.so),用于链接到该库的已编译程序。如果您想在开发中使用该库,请安装ghc-containers-devel
:
$ dnf install -y ghc-containers-devel
$ ghci
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude> import Data.Set
Prelude Data.Set>