Here's a more complete proof of concept: The attached file guix.scm, when run a checkout of emacs branch emacs-29 with guix build -f guix.scm will : - compile everything as if run locally but with the patches provided by guix sources. - a local edit and the rerun of guix build -f guix.scm will only compile new / changed code. Now I can try developping emacs without worring about huge compilation times and without the developping issues that would happen if I ran the build-system by hand without the patches. We could even imagine adding an option to guix shell -D that could drop such a file for any package, since most of the code is reproducible (although applying a derivation this way is still quite hacky).