
* Simon Peyton-Jones
I believe that the driving goal is:
* to allow changes to internals without forcing a version-bump on 'base', on which every package depends
This is a good goal. Another goal could be to make the packages more meaningful. I think this goal is good by itself (judging from common engineering principles), and also would make it easier to share the code between different implementations. (Right now JHC has its own version of many base modules, because it cannot reuse base.) What is common between the following modules? Control.Applicative Control.Concurrent Data.Foldable Data.STRef Foreign.C GHC.Exts System.Environment Text.ParserCombinators.ReadP If we ignore for a second historical incidents and tricky inter-dependencies, I think we'd all agree that by today's standard they all logically belong to different packages. In other words, if they didn't exist today, and a package came out that contained two or more of the above modules, it would look really strange. Roman