Building "production stable" software in Haskell

Simon Marlow simonmarhaskell at
Tue Sep 18 08:10:56 EDT 2007

Adrian Hey wrote:
> Neil Mitchell wrote:
>> Hi
>>>> They are less stable and have less quality control.
>>> Surely you jest? I see no evidence of this, rather the contrary in fact.
>> No, dead serious. The libraries have a library submission process.
> It does not follow that libraries that have not been submitted
> to this process "are less stable and have less quality control". Nor
> does it follow that libraries that have been through this submission
> process are high quality, accurately documented, bug free and efficient
> (at least not ones I've looked at and sometimes even used).

Adrian's right - the set of libraries that are shipped with GHC is 
essentially random.  A bit of history:

Originally we shipped pretty much all freely-available non-trivial Haskell 
libraries with GHC.  At some point (about 5 years ago or so) the number of 
Haskell libraries started to grow beyond what we could reasonably ship with 
GHC, and some of them were providing duplicate functionality, so we stopped 
adding to the set.  We made a few small exceptions (e.g. filepath) for 
things that we felt really should be in the default GHC install, but to a 
large extent the set of libraries that are "shipped with GHC" has remained 
constant over the last 3 major releases.

In 6.6, we made a nomenclature change: we divided the packages "shipped 
with GHC" into two: those that are required to bootstrap GHC (the "boot" 
libraries, until recently called the "core" libraries), and the others that 
we just include with a defualt binary install (the "extra" libraries).  On 
some OSs, e.g. Debian, Ubuntu, Gentoo, you don't even get the "extra" 
libraries by default.  This was intended to be a stepping stone to 
decoupling GHC from these libraries entirely, which is possible now that we 
have Cabal and Hackage.

What I'm getting around to is that being "shipped with GHC" is not a 
category that has any particular meaning right now.  I think it's time the 
community started to look at what libraries we have in Hackage, and 
identify a subset that we should consider "standard" in some sense - that 
is, those to which the library submission process applies, at the least. 
If there were such a set, we could easily make GHC's "extra" libraries 
equal to it.


More information about the Libraries mailing list