@civodul The problem is that this makes hard to use these in scripts. I ran into exactly this issue when I was writing my MirageOS importer (which I promise I'm gonna try upstreaming during the holidays 😅). I needed to build a package that just ran mirage configure and use the dune config file from it to get the dependency list and call the opam importer, which then generated the code.
Sure, I figured out how to do it in the end, but it was more complicated than just calling (build thing).
@civodul Maybe this is a too far reaching problem, but: if the issue is that the string serializations of packages are not nice to read, why not make Guile serialize things nicely by default?
Maybe Scheme should have a separate generic interface/typeclass/whatever for pretty printing and concise serialization, similar to Rust.