The first `buildEnv` doesn't see a collision because it hasn't included the `propagatedUserEnvPkgs` yet. The final `buildEnv` is going to look at the `propagated-user-env-pkgs` file we create in this expression and then it's going to try to include all those packages; that is when the collision will occur.