Hello, >Correctly handling the ABI concerns — which Guix currently does >not do — would result in a combinatorial explosion of Clojure >packages should multiple versions of Clojure ever be available in >Guix at the same time.
I think this is partly true and also a problem of other languages in Guix too but it is solvable IMO, one does need indeed to duplicate each and every package for the specific Clojure version used but that can be solved by writing a procedure with PACKAGE-MAPPING that changes `#:clojure' argument recursively for the package inputs, just like it is done with PACKAGE-WITH-PYTHON2, thus using one line of code to change a lot of packages. I don't know much of Clojure to have an opinion on it but just saying how that problem is and should be solved because it could also affect packages for a potential new Rust build system since ABI compatibility is a problem too.