GNU Guix is known as one of the most insistent package managers on
reproducibility, the same as Nix, from which Guix was deeply inspired.
However, while the two programs share most of their philosophies, I
couldn't see something like flakes in Guix. I know Guix has
descriptions and manifests, or integrated inferiors, which guarantee
the exactness of building of a package set. But all these mechanisms
point directly to the precise references ("guix.git" with a commit
hash), rather than separate the unlocked references ("nixpkgs/master"
in flake.nix) from the locks (flake.lock), which allows imperative
upgrade for a specific workspace.
So, is there any mechanism of Guix analog to, or trick in Guile to
imitate the functionalities of flakes? Or is there a possibility for
this? I have merely skimmed R7RS, and know little about the Guile
implementation, but just impressed by the generality of the language.
So I wonder if this can be done provided a much more powerful backend
than that of Nix.