Не удалось найти модуль "Data.Set"
В моей системе Fedora 28 установлены следующие RPM-пакеты:
ghc-ghc-8.2.2-66
ghc-containers-0.5.10.2-66
Согласно взлому установленный модуль должен быть включен в данные обороты. Однако пытаясь 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
Как мне зарегистрировать модуль?
1 ответ
Я бы пропустил пакеты операционной системы и пошел с 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.
Для всех новичков вроде меня, кто это найдет, вам нужно добавить 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
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>