> You can take what’s included with OS packages, but then you’re stuck with whatever version that is.
It's pretty easy to override things in Nixpkgs though, whether at the system level, or for one application, or just a particular dependency deep in the tree of one script.
Nixpkgs has a bunch of powerful functions to make this easier, e.g. callCabal2nix, makePackageSet, etc.
https://nixos.org/manual/nixpkgs/stable/#haskell-overriding-...
https://github.com/NixOS/nixpkgs/blob/master/pkgs/developmen...