Proposal: Slim base-5 API package

Joachim Breitner mail at
Thu Jul 18 11:58:17 CEST 2013


Am Montag, den 15.07.2013, 09:56 +0200 schrieb Joachim Breitner:
> Furthermore, the base package is stripped down to a sensible base API.
> Most, if not all, of the GHC package should go. There are other rather
> specific modules (Text.Show.Functions, Text.Read.Lex) where I am unsure
> whether they are useful in base. For such modules we will see if this is
> a good point to put them in a separate package.

I went ahead and analyzed the import statements from 603 Haskell
packages (I picked those from Debian including the patches¹ because I
know that they all compile with each other) and built the following

Nice example for Zipf's law.

Unfortunately, -ddump-minial-imports does not generate an import
statement for Prelude, so no information about the Prelude symbols is
present. The „Anything“ pseudo-module just shows the number of packages

The GHC.* tree of modules is used by very view packages: 39 of 603;
mostly for unboxed arithmetic. I think it would not be too hard to
expect those packages to import a separate package from base for that
(maybe ghc-exts), and make the base-5 package API muss less

Many modules in base are used by very few packages. Some because they
are relatively new (Data.Tuple), but others can probably be demoted from
their base status without too much disturbance (Data.HashTable,
System.Mem.StableName, Text.Read.Lex).

Larger cleanups (such as creating a base-without-missiles) should happen
in separate packages, so that those who do not care can just continue to
use base as before.


¹ See
for the list of packages in Debian and
for our patches.

Joachim “nomeata” Breitner
  mail at joachim-breitner.de
  Jabber: nomeata at  • GPG-Key: 0x4743206C
  Debian Developer: nomeata at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the Libraries mailing list