haskell: make `ghc`, `cabal-install`, and `stack` visible

Thanks to @peti. Close #10035.

Changed files
+9 -10
doc
nixos
doc
manual
release-notes
pkgs
top-level
+5 -6
doc/haskell-users-guide.xml
···
registered on
<link xlink:href="http://hackage.haskell.org/">Hackage</link>, but
strangely enough normal Nix package lookups don't seem to discover
-
any of them:
+
any of them, except for the default version of ghc, cabal-install, and stack:
</para>
<programlisting>
-
$ nix-env -qa cabal-install
-
error: selector ‘cabal-install’ matches no derivations
-
-
$ nix-env -i ghc
-
error: selector ‘ghc’ matches no derivations
+
$ nix-env -i alex
+
error: selector ‘alex’ matches no derivations
+
$ nix-env -qa ghc
+
ghc-7.10.2
</programlisting>
<para>
The Haskell package set is not registered in the top-level namespace
+3 -4
nixos/doc/manual/release-notes/rl-1509.xml
···
<listitem>
<para>
-
Haskell packages can no longer be found by name, i.e. the commands
-
<literal>nix-env -qa cabal-install</literal> and <literal>nix-env -i
-
ghc</literal> will fail, even though we <emphasis>do</emphasis> ship
-
both <literal>cabal-install</literal> and <literal>ghc</literal>.
+
Haskell packages can no longer be found by name, except for
+
<literal>ghc</literal>, <literal>cabal-install</literal>, and
+
<literal>stack</literal>, even though we do package the whole Hackage.
The reason for this inconvenience is the sheer size of the Haskell
package set: name-based lookups such as these would become much
slower than they are today if we'd add the entire Hackage database
+1
pkgs/top-level/all-packages.nix
···
haskellPackages = haskell.packages.ghc7102.override {
overrides = config.haskellPackageOverrides or (self: super: {});
};
+
inherit (haskellPackages) ghc cabal-install stack;
haxe = callPackage ../development/compilers/haxe {
inherit (ocamlPackages) camlp4;