6. Means of Distribution and Layered Tools

Most of the discussion here has been about giving the user tools to build, install, and manage libraries and tools written in Haskell. There is another important component to this which deserves attention, and that is the distribution of these tools.

For C++ and Perl (and likely many other programming languages) there are central repositories of libraries and tools (Section A.3). In a way, Haskell has this also, bit it is centrally maintained rather than being a free-for-all where nearly anyone can get their package distributed. The author feels that both approaches are appropriate, and libraries can graduate from one to the other.

Having a standard interface for installing packages allows us to layer tools upon it. For instance, it would be nice to be able to download and install Haskell libraries and all their dependencies with one command. For Perl (by virtue of CPAN) this is already possible. Other layered tools are discussed in the Use Cases (Section 5).