Modus is not really an alternative to Nix as a package manager, but to Nix as a language. It has several advantages, for example, it is non-Turing-complete, so there can not be infinite loops, and its definitions are more concise thanks to its logic programming foundations.
Saying that, I agree that an integration with package managers can be beneficial for reproducibility. This is the area of our current research.
Apart from caching, BuildKit also provides automatic parallelization. Because of these two features, we use BuildKit to make our research results, experiments with program analysis tools on software benchmarks, easier to share and faster to execute.
As a more expressive frontend of BuildKit, we created a simple, non-Turing-complete logic programming language, which can also be thought of as docker-based Makefile.
Hey HN, we are happy to announce Modus, a language for building Docker/OCI container images. Modus uses logic programming to express interactions among build parameters, specify complex build workflows, automatically parallelise and cache builds, help to reduce image size, and simplify maintenance. Modus is distributed under AGPL-3.0. The current version, 0.1, is a preview release; it is not recommended for production use. Feedback is welcome!
SyGuS competition (SyGuS-Comp)[1] is a widely-used collection of such problems, but of course there will always be problem domains that are not well-represented by standard benchmarks.