pubgrub: The PubGrub version solver
PubGrub is a version-solving algorithm: unit propagation with conflict-driven learning, and, when there is no solution, a proof of why that can be written out for a person to read.
This is a Haskell implementation that is generic over the domain. A type class says what the variables, values, sets of values and facts are; a callback answers the solver's questions one variable at a time; and the explanation of a failure is worded by the domain.
Start with the tutorial in PubGrub.Tutorial. PubGrub.Cookbook has
how-to guides, and PubGrub explains the model and re-exports what a user
normally needs. The domain of Haskell packages is the pubgrub-cabal
package.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- pubgrub-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | base (>=4.20 && <4.23), co-log-core (>=0.3.2 && <0.4), containers (>=0.7 && <0.9), text (>=2.1 && <2.2) [details] |
| Tested with | ghc ==9.10.3 || ==9.12.2 || ==9.14.1 |
| License | BSD-3-Clause |
| Copyright | (c) 2026 Tweag I/O by Modus Create |
| Author | Andrea Bedini |
| Maintainer | andrea.bedini@moduscreate.com |
| Uploaded | by andreabedini at 2026-11-09T05:06:14Z |
| Category | Distribution |
| Home page | https://github.com/tweag/pubgrub-hs |
| Bug tracker | https://github.com/tweag/pubgrub-hs/issues |
| Source repo | head: git clone https://github.com/tweag/pubgrub-hs.git(pubgrub) |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Downloads | 2 total (2 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |