base package

Simon Peyton-Jones simonpj at
Sat Feb 23 11:27:46 CET 2013

It's great work, thanks Joachim.

I'd like to be very clear about goals, though.  I have not been following this thread closely enough, but is there a Wiki page that explains what the goals of the base-package break-up is?

I believe that the driving goal is:

*        to allow changes to internals without forcing a version-bump on 'base', on which every package depends
But that goal needs a bit of unpacking. Suppose we divided base into six, base1, base2, base3, etc, but each was a vertical silo and every other package depended on all six.  Then nothing would be gained; bumping any of them would cause a ripple of bumps down the line.

Alternatively, suppose we split it into just two: 'base' and 'base-internal', where the former is just a wrapper around the latter, but presenting a stable API.  Now you'd get the stability you want.

I'm sure this is a vastly simplistic analysis, and those of you who have been thinking hard about this can say it more precisely than I, based on practical experience.  But I would find it very helpful to have a crystal-clear articulation of the actual goals, with concrete examples, to help orient the debate, and guide choices.

I assume that a non-goal is

*        split base into as many packages as possible.
though a superficial reading of the thread might suggest just that.  Indeed other things being equal, a goal should be

*        split base into as FEW packages as possible, consistent with meeting the other goals
As Johan points out, a split now could paint us into a corner later, so we should not gratuitously split things up.

Many thanks for working on this.


From: glasgow-haskell-users-bounces at [mailto:glasgow-haskell-users-bounces at] On Behalf Of Johan Tibell
Sent: 22 February 2013 19:38
To: Joachim Breitner
Cc: glasgow-haskell-users at
Subject: Re: base package

Hi Joachim.

Glad to see you're making progress on this. Once we're done exploring how fine-grained we can make the division we might want to pull back a bit and consider what logical groupings makes sense. For example, even if the float functionality can be split from the int functionality, I don't think that makes for a very logical grouping.

In addition, I don't think we want to say that e.g. pure data structures can't depend on the FFI. While their current implementation might not use the FFI, what if we want to use it in the future. We'd have to reshuffle the packages again.

Just my 2 cents.

-- Johan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list