Moving values defined with `let` to the function arguments (with defaults) means other consumers of `default.nix` can customize these values. One example is a `flake.nix`, which can then supply the `nixpkgs` input.