I find that Spack in fact takes very little inspiration from functional package managers, Nix and GNU Guix.  Dependencies are specified in a loose fashion which, on one hand, gives a lot of flexibility, but on the other hand is detrimental to reproducibility.<p>More importantly, part of the dependency graph, including compilers, is treated specially and essentialy considered outside of the scope of Spack.  This seriously hinders reproducibility, as we tried to explain in <a href="https:&#x2F;&#x2F;hal.inria.fr&#x2F;hal-01161771&#x2F;en" rel="nofollow">https:&#x2F;&#x2F;hal.inria.fr&#x2F;hal-01161771&#x2F;en</a> .