Hello all, I've been fiddling with Guix for about two days, and have managed to make some first modifications.
I'm wondering why Guix has so much built-in functionality? I don't really see the benefit of having this large number of packages in-tree. Similarly, machine configs, bootloaders, build systems, and some image configurations are all kept in-tree, part of every guix build.
I'm not clear on what the reasoning is? I'd highly appreciate some help here.
I think being able to hack guix is very fun and once I get the hang of it a bit better still, I can even see it being very useful for all sorts of things. But it requires modifying, building and ultimately shipping this large, complicated repository.
Of course channels exist, but they are additive only, while a large number of packages already exist in-tree. And either the build system of the package is supported, or it's a huge pain.

For bootloaders the image configuration I'm totally lost.

I've tried my hand at reducing guix to only the absolutely necessary parts, but it's very hard with packages like `base` and `admin`, and of course I don't have the knowledge (yet) to know what exactly is critical to functionality and what is just "nice to have".

Anyways, I'd really appreciate it if someone that has more experience and might even know the history of how these things came to be would help me out! :)