# Packages which are difficult for the cabal solver?

**URL:** <https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659>\
**Category:** Uncategorized\
**Created:** [September 7, 2026, 8:29am UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659 "2026-09-07T08:29:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sclv](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/sclv/32/71_2.png) [@sclv](https://discourse.haskell.org/u/sclv)\
**Post date:** [September 7, 2026, 8:29am UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/1 "2026-09-07T08:29:24Z")

</div>

For a research project I would like examples of packages which give the cabal solver some difficulty — ie for which solving dependencies (or failing to solve) takes a noticeable amount of time, say at least 30 seconds. I’m sure people have examples. Pleas share them here!

---

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [September 7, 2026, 8:50am UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/2 "2026-09-07T08:50:52Z")

</div>

Couldn’t you just try all Hackage packages? I would expect a naive approach to take at most ten hours, especially if you add a timeout of 30 seconds.

---

<div class="post-metadata">

**Author:** ![wiz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/wiz/32/2408_2.png) [@wiz](https://discourse.haskell.org/u/wiz)\
**Post date:** [September 7, 2026, 1:13pm UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/3 "2026-09-07T13:13:22Z")

</div>

Found the `acme-everything` author 😆

Oh, well, it fails on the first step with a silly error

```haskell
[__1] rejecting: ztail-1.2.0.2, ztail-1.2.0.1, ztail-1.2, ztail-1.1,
ztail-1.0.2, ztail-1.0.1, ztail-1.0 (does not contain library, which is
required by acme-everything)

```

But that can be a good start. With a few iterations on pruning you can even run the “largest buildable closure” contest with prizes (=

---

<div class="post-metadata">

**Author:** ![sclv](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/sclv/32/71_2.png) [@sclv](https://discourse.haskell.org/u/sclv)\
**Post date:** [September 7, 2026, 4:19pm UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/4 "2026-09-07T16:19:33Z")

</div>

That would defeat the purpose. What I want is a realistic job that induces lots of backtracking.

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [September 7, 2026, 7:57pm UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/5 "2026-09-07T19:57:11Z")

</div>

> [@sclv](#):
>
> What I want is a realistic job that induces lots of backtracking.

You can build anything sizeable (say, `cabal-install` or better anything depending on TLS) with `--prefer-oldest`. This is guaranteed to cause a lot of backtracking.

---

<div class="post-metadata">

**Author:** ![fendor](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/fendor/32/376_2.png) [@fendor](https://discourse.haskell.org/u/fendor)\
**Post date:** [September 9, 2026, 8:23am UTC](https://discourse.haskell.org/t/packages-which-are-difficult-for-the-cabal-solver/14659/6 "2026-09-09T08:23:10Z")

</div>

Indeed, HLS with `--prefer-oldest` takes a long time, so I suggest the HLS code base 🙂

```haskell
> time cabal build --dry-run all -w ghc-9.10.3 --prefer-oldest
Resolving dependencies...
Build profile: -w ghc-9.10.3 -O1
In order, the following would be built (use -v for more details):
...

________________________________________________________
Executed in 39.18 secs fish external
   usr time 37.70 secs 55.00 micros 37.70 secs
   sys time 0.60 secs 999.00 micros 0.60 secs

```
