It’s a deep topic. Just the single top-level fix-point is already hard enough to understand. Then add per-package-set fix-points like the one in haskellPackages, and then think about how to compose packages that depend on 2 or more package sets, each of them with their own fix-point and potential overrides.
Good luck
The hard part is to explain all of this with words and not get the reader confused. I believe a picture or even an animation could do wonders to share the understanding of how things are working.