Is there some section that explains what nixpkgs is and how it works. By that i mean - How is nixpgs bootstrapped, what are packageSets, scopes and why can packageA use packageB as buildInput if they are defined in the same package set. (fixed point recursion)