Я пишу небольшую программу на Haskell, которой нужно импортировать два модуля Control.Functor.Algebra
и Control.Morphism.Hylo
.
Я искал в гугле. Эти два модуля можно найти в category-extras.
Поэтому я добавил category-extras
к package.yaml
:
dependencies:
- base >= 4.7 && < 5
- category-extras
Затем вызовите stack build
, но произошла ошибка:
E:\work-category-theory\quick-sort>stack build
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 was found, this may fail
Error: While constructing the build plan, the following exceptions were
encountered:
In the dependencies for quick-sort-0.1.0.0:
category-extras needed, but the stack configuration has no specified
version (latest matching version is 1.0.2)
needed since quick-sort is a build target.
Some different approaches to resolving this:
* Recommended action: try adding the following to your extra-deps
in E:\work-category-theory\quick-sort\stack.yaml:
- category-extras-1.0.2@sha256:511a5668e05af6617d94080e866c9a496e0abd7625d961264755614a73b517f1,10259
Plan construction failed.
Следуя подсказкам, я добавил category-extras-1.0.2@sha256:511a5668e05af6617d94080e866c9a496e0abd7625d961264755614a73b517f1,10259
к extra-deps
в stack.yaml
:
extra-deps:
- category-extras-1.0.2@sha256:511a5668e05af6617d94080e866c9a496e0abd7625d961264755614a73b517f1,10259
Но все равно не получилось:
E:\work-category-theory\quick-sort>stack build
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 was found, this may fail
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for category-extras-1.0.2:
categories needed, but the stack configuration has no specified version (latest matching version is 1.0.7)
comonad-extras needed, but the stack configuration has no specified version (latest matching version is 4.0.1)
comonad-transformers needed, but the stack configuration has no specified version (latest matching version is 4.0)
comonads-fd needed, but the stack configuration has no specified version (latest matching version is 4.0)
groupoids needed, but the stack configuration has no specified version (latest matching version is 4.0)
indexed-extras needed, but the stack configuration has no specified version (latest matching version is 0.2)
profunctor-extras needed, but the stack configuration has no specified version (latest matching version is 4.0)
representable-functors needed, but the stack configuration has no specified version (latest matching version
is 3.2.0.2)
representable-profunctors needed, but the stack configuration has no specified version (latest matching version
is 3.2)
needed due to quick-sort-0.1.0.0 -> category-extras-1.0.2
Some different approaches to resolving this:
* Recommended action: try adding the following to your extra-deps in E:\work-category-theory\quick-sort\stack.yaml:
- categories-1.0.7@sha256:e707f8ac06eac755cb508aa67de64ab2e33ce1c54aebb6f43f64c615aa5234f6,1636
- comonad-extras-4.0.1@sha256:60c93aa274239086d96d162c3c8bf7cde33a3e8470ecb56461b2f77d2625521e,1321
- comonad-transformers-4.0@sha256:cdc81f6837836ec4b120ced8503b54a7f1e230e08971cc01717dcd16ba1ceb28,831
- comonads-fd-4.0@sha256:92ed08f50f64aa9ce57214c9f0539e0244225ef4c934065dff819a751b89eeaf,817
- groupoids-4.0@sha256:7d26a2cc5e557773b565f2433b898d7472404a03bafde51fec5f4a7c7936812e,836
- indexed-extras-0.2@sha256:e7e498023e33016fe45467dfee3c1379862e7e6654a806a965958fa1adc00304,1349
- profunctor-extras-4.0@sha256:b436587378964546df3063dad44504fd698cce0f714ce089c1e3b499f063940d,874
- representable-functors-3.2.0.2@sha256:f15e598ca712171408d919803a48dcf786c94e9596a65336a3d66d0886ca60c5,1877
- representable-profunctors-3.2@sha256:d7d902ab21de5bcf9ceeb1b13529aa835a818dad00e75da999241508f89f85c2,786
Plan construction failed.
Следуя подсказкам, продолжаю добавлять extra-deps
в stack.yaml
:
extra-deps:
- category-extras-1.0.2@sha256:511a5668e05af6617d94080e866c9a496e0abd7625d961264755614a73b517f1,10259
- categories-1.0.7@sha256:e707f8ac06eac755cb508aa67de64ab2e33ce1c54aebb6f43f64c615aa5234f6,1636
- comonad-extras-4.0.1@sha256:60c93aa274239086d96d162c3c8bf7cde33a3e8470ecb56461b2f77d2625521e,1321
- comonad-transformers-4.0@sha256:cdc81f6837836ec4b120ced8503b54a7f1e230e08971cc01717dcd16ba1ceb28,831
- comonads-fd-4.0@sha256:92ed08f50f64aa9ce57214c9f0539e0244225ef4c934065dff819a751b89eeaf,817
- groupoids-4.0@sha256:7d26a2cc5e557773b565f2433b898d7472404a03bafde51fec5f4a7c7936812e,836
- indexed-extras-0.2@sha256:e7e498023e33016fe45467dfee3c1379862e7e6654a806a965958fa1adc00304,1349
- profunctor-extras-4.0@sha256:b436587378964546df3063dad44504fd698cce0f714ce089c1e3b499f063940d,874
- representable-functors-3.2.0.2@sha256:f15e598ca712171408d919803a48dcf786c94e9596a65336a3d66d0886ca60c5,1877
- representable-profunctors-3.2@sha256:d7d902ab21de5bcf9ceeb1b13529aa835a818dad00e75da999241508f89f85c2,786
Опять не получилось:
E:\work-category-theory\quick-sort>stack build
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 was found, this may fail
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for representable-functors-3.2.0.2:
comonad-5.0.6 from stack configuration does not match >=3 && <4 (latest matching version is 3.1)
comonad-transformers-4.0 from stack configuration does not match >=3 && <4 (latest matching version is 3.1)
comonads-fd-4.0 from stack configuration does not match >=3 && <4 (latest matching version is 3.0.3)
containers-0.6.2.1 from stack configuration does not match >=0.3 && <0.6 (latest matching version is 0.5.11.0)
contravariant-1.5.2 from stack configuration does not match >=0.4.1 && <1 (latest matching version is 0.6.1.1)
free-5.1.3 from stack configuration does not match >=3 && <4 (latest matching version is 3.4.2)
mtl-2.2.2 from stack configuration does not match >=2.0.1.0 && <2.2 (latest matching version is 2.1.3.1)
semigroupoids-5.3.4 from stack configuration does not match >=3 && <4 (latest matching version is 3.1)
transformers-0.5.6.2 from stack configuration does not match >=0.2 && <0.4 (latest matching version is 0.3.0.0)
needed due to quick-sort-0.1.0.0 -> representable-functors-3.2.0.2
Some different approaches to resolving this:
* Set 'allow-newer: true' in C:\sr\config.yaml to ignore all version constraints and build anyway.
* Recommended action: try adding the following to your extra-deps in E:\work-category-theory\quick-sort\stack.yaml:
- comonad-3.1@sha256:95ab6440e380de06c6167f52a29903bee3e06295bb15598687305755eb1febd9,1635
- comonad-transformers-3.1@sha256:6641d4d5466a1e5e5b3863654d1df224c0980c332cf648b17ff148312bcf3f3b,1372
- comonads-fd-3.0.3@sha256:7fd04f220367fe8c0cd2b8c35ca15bc77a7d93a3d45f276435a094f9bdb44a60,1376
- containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685
- contravariant-0.6.1.1@sha256:715c882354db424ed8b79518dab90e103a30a0ac64229f6cc86f0b3bb036c5dc,1493
- free-3.4.2@sha256:ddb52e32cb0e219e7d46b7021c7d1ec54797df878fd1b1ede0732bcacafdd9f0,2262
- mtl-2.1.3.1@sha256:a4283d5070cef5061aa8888c88baf50cd2db1904b254701321a93cf6c0835a11,1618
- semigroupoids-3.1@sha256:66c4375dabc33cff413ab5c1bc73c313fd2768ae21504b1cd1ac9aa8705529dd,3550
- transformers-0.3.0.0@sha256:4ec3dd53be60415dad46e00ec6c7f78bdc37dcda1670cf5abe5c480719b78b60,2318
Plan construction failed.
Хорошо, продолжаю добавлять..
- category-extras-1.0.2@sha256:511a5668e05af6617d94080e866c9a496e0abd7625d961264755614a73b517f1,10259
- categories-1.0.7@sha256:e707f8ac06eac755cb508aa67de64ab2e33ce1c54aebb6f43f64c615aa5234f6,1636
- comonad-extras-4.0.1@sha256:60c93aa274239086d96d162c3c8bf7cde33a3e8470ecb56461b2f77d2625521e,1321
- comonad-transformers-4.0@sha256:cdc81f6837836ec4b120ced8503b54a7f1e230e08971cc01717dcd16ba1ceb28,831
- comonads-fd-4.0@sha256:92ed08f50f64aa9ce57214c9f0539e0244225ef4c934065dff819a751b89eeaf,817
- groupoids-4.0@sha256:7d26a2cc5e557773b565f2433b898d7472404a03bafde51fec5f4a7c7936812e,836
- indexed-extras-0.2@sha256:e7e498023e33016fe45467dfee3c1379862e7e6654a806a965958fa1adc00304,1349
- profunctor-extras-4.0@sha256:b436587378964546df3063dad44504fd698cce0f714ce089c1e3b499f063940d,874
- representable-functors-3.2.0.2@sha256:f15e598ca712171408d919803a48dcf786c94e9596a65336a3d66d0886ca60c5,1877
- representable-profunctors-3.2@sha256:d7d902ab21de5bcf9ceeb1b13529aa835a818dad00e75da999241508f89f85c2,786
- comonad-3.1@sha256:95ab6440e380de06c6167f52a29903bee3e06295bb15598687305755eb1febd9,1635
- comonad-transformers-3.1@sha256:6641d4d5466a1e5e5b3863654d1df224c0980c332cf648b17ff148312bcf3f3b,1372
- comonads-fd-3.0.3@sha256:7fd04f220367fe8c0cd2b8c35ca15bc77a7d93a3d45f276435a094f9bdb44a60,1376
- containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685
- contravariant-0.6.1.1@sha256:715c882354db424ed8b79518dab90e103a30a0ac64229f6cc86f0b3bb036c5dc,1493
- free-3.4.2@sha256:ddb52e32cb0e219e7d46b7021c7d1ec54797df878fd1b1ede0732bcacafdd9f0,2262
- mtl-2.1.3.1@sha256:a4283d5070cef5061aa8888c88baf50cd2db1904b254701321a93cf6c0835a11,1618
- semigroupoids-3.1@sha256:66c4375dabc33cff413ab5c1bc73c313fd2768ae21504b1cd1ac9aa8705529dd,3550
- transformers-0.3.0.0@sha256:4ec3dd53be60415dad46e00ec6c7f78bdc37dcda1670cf5abe5c480719b78b60,2318
Теперь произошла новая ошибка:
E:\work-category-theory\quick-sort>stack build
The same package name is used in multiple local packages
comonad-transformers used in:
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "comonad-transformers", pkgVersion = mkVersion [3,1]
}) 6641d4d5466a1e5e5b3863654d1df224c0980c332cf648b17ff148312bcf3f3b,1372 (TreeKey ced3d6e9e6804e43646e6f8b23c8354808074a
403efeadc3e9befd628a78ea46,1116))
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "comonad-transformers", pkgVersion = mkVersion [4,0]
}) cdc81f6837836ec4b120ced8503b54a7f1e230e08971cc01717dcd16ba1ceb28,831 (TreeKey 1319b9d5039d6252803e684d0e42431867b20c9
03b49ddb6d5910b2b8eeb02e7,414))
comonads-fd used in:
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "comonads-fd", pkgVersion = mkVersion [3,0,3]}) 7fd0
4f220367fe8c0cd2b8c35ca15bc77a7d93a3d45f276435a094f9bdb44a60,1376 (TreeKey 7714b845bc4ba432b5b48054a45ba606ce72c7bfa2242
d3faed5387f8786e5b5,709))
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "comonads-fd", pkgVersion = mkVersion [4,0]}) 92ed08
f50f64aa9ce57214c9f0539e0244225ef4c934065dff819a751b89eeaf,817 (TreeKey 275c7b8e4336d289ef0f280260ac9da408f1b41bd2a49b1c
55699bfbf96c9c82,463))
Кажется, есть какие-то дубликаты пакетов (comonad-transformers
и comonads-fd
)?
Я удаляю более низкую версию и перестраиваю ее:
E:\work-category-theory\quick-sort>stack build
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 was found, this may fail
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for cabal-doctest-1.0.8:
Cabal must match >=1.10 && <3.3, but the stack configuration has no specified version (latest matching version
is 3.2.0.0)
needed due to quick-sort-0.1.0.0 -> cabal-doctest-1.0.8
In the dependencies for distributive-0.6.2:
Cabal needed, but the stack configuration has no specified version (latest matching version is 3.2.0.0)
needed due to quick-sort-0.1.0.0 -> distributive-0.6.2
In the dependencies for hashable-1.3.0.0:
text must match >=0.12 && <1.3, but the stack configuration has no specified version (latest matching version
is 1.2.4.0)
needed due to quick-sort-0.1.0.0 -> hashable-1.3.0.0
In the dependencies for reducers-3.12.3:
text must match >=0.11.1.5 && <1.3, but the stack configuration has no specified version (latest matching version
is 1.2.4.0)
needed due to quick-sort-0.1.0.0 -> reducers-3.12.3
In the dependencies for transformers-0.3.0.0:
base-4.13.0.0 from stack configuration does not match >=2 && <4.8 (latest matching version is 4.7.0.2)
needed due to quick-sort-0.1.0.0 -> transformers-0.3.0.0
Some different approaches to resolving this:
* Build requires unattainable version of base. Since base is a part of GHC, you most likely need to use a different
GHC version with the matching base.
Plan construction failed.
Теперь я совсем запутался...
Почему стек не может автоматически разрешать зависимости пакетов?
Кто-нибудь может мне помочь?
Большое спасибо!
stack
был построен явно, потому что авторы считали, что автоматическое разрешение зависимостей пакетов было большой ошибкой. Это верный ответ, почему. Но есть обходные пути; надеюсь, некоторые люди напишут их некоторые. Или вы можете переключиться наcabal
, который включает решение зависимостей; это создает свои собственные проблемы. Это компромисс. - person Daniel Wagner   schedule 20.04.2020cabal
... но до этого есть ли способ обойти эту проблему с помощьюstack
? Я просто хочу импортировать два модуляControl.Functor.Algebra
иControl.Morphism.Hylo
из category-extras... - person chansey   schedule 20.04.2020category-extras
устарел. Это новый проект? Если да, то используйте вместо нихrecursion-schemes
иData.Functor.Foldable
. - person Joseph Sible-Reinstate Monica   schedule 20.04.2020Algebra
,Coalgebra
иhylo
для реализации быстрой сортировки. Я могу сам написать конструктор и функцию этого типа. Для DRY я нашел эти пакеты от hackage... - person chansey   schedule 20.04.2020recursion-schemes
иData.Functor.Foldable
, замену устаревших модулей, которые вы хотите. - person Joseph Sible-Reinstate Monica   schedule 20.04.2020