These functions used to live in pkgs/development/haskell-modules/default.nix,
but they are generic, really, and should be easily accessible to everyone.
(cherry picked from commit 405fda497a)
This is primarily useful in Nix expressions that are also intended to
be used by nix-shell. It allows saying things like:
buildInputs = [ ... ] ++ (if inNixShell then [ emacs ] else [ ]);
This should not be used in Nixpkgs (since the question of what
constitutes a useful nix-shell environment is very subjective).
This makes it a bit easier to find out the current Nixpkgs version,
e.g.
$ nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion
"14.02.35657.66f51a9"