The base package is still a large, unwieldy beast, making it hard to
develop and debug. If possible, I'd like to cut it down a bit more
before the 6.10 release.
I won't inline all the details here, as it's a huge amount of text and
an image, but basically I'm proposing to:
* Create packages:
timeout, unique, concurrent,
st,
system, numeric, generics,
version, getopt, debug, printf
ghc-exts
I have a very strong request to name the "generics" package something else. The reason is that this not the only flavor of generic programming. Many others are available and/or will be made available. (We [1] are working on a few.) For example, if you go to the Hackage package list [2] and grep for "generic," you'll find a number of packages, not to mention Uniplate and Strafunski (a.k.a. StrategyLib). If you go to the wiki on research papers in the area of generics [3], you find a lot. Only 2 of those cover the Data.Generics library.
Naming the package "generics" is deceiving, because it conveys that it is the only (or main) generics library. I would recommend calling it "syb," because that is its more popular name based on the research that has been done, esp. considering the continuing use of "Scrap Your ..." in titles. ;)
As a side note, it appears that I am not the first person to say this. [4]
Thanks,
Sean