
Hi, 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 report: http://darcs.nomeata.de/import-analyzer/report-debian-2013-07-17.html 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 analyzed. 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 GHC-specific. 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. Greetings, Joachim ¹ See http://anonscm.debian.org/darcs/pkg-haskell/tools/all-packages/packages.txt for the list of packages in Debian and http://anonscm.debian.org/darcs/pkg-haskell/tools/all-packages/patches/ for our patches. -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org