OK, back on the topic of conflicts between interpreters and modules: I realise the current system is fine as is!
Sometimes it is good to go for a cycle run in the cold ;) GNU Guix does the right thing. It builds isolated packages, including interpreters and modules. Next it puts them in a profile. Now the key insight is that it is *not* Guix' responsibility when people mess up their profiles. It is easily possible, even with emacs, to mess up the profile. Also, Ruby allows for minor version mixing of modules. It is a Ruby problem. They should fix that. We could have the interpreter test modules for being true dependencies and we could test the interpreter for belonging with a module. But the thing is, it is not necessary. Users can easily use different profiles for different Rubies. They just need to be aware. I can create a profile named ~/.guix-pgks1l9cl696j34v9mb35lk8x6lac3b0-ruby-2.2.4 if I want to. It is good enough. That profile will contain the modules I install with that Ruby. So, after much thought, my final suggestion is to leave it like it is :). The symlink in the profile is cool. We don't need a runpath or wrapper script. Pj.