Probably, the ghc version comes from the nixpkgs your nix shell is using. It depends on what your nix shell script looks like. You should be able to choose packages using haskell.packages.${ghcversion} inside the nixpkgs attrset. I think if you just use haskell.packages it defaults to whatever ghc was considered stable in the nixpkgs you’re using. If the right ghc is not in your nixpkgs probably should update your nixpkgs. I forget how that’s done pre-flakes, and I don’t know niv either.