PROPOSAL: More base package breakup

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Tue Aug 12 20:04:53 EDT 2008


On Wed, 2008-08-06 at 21:37 +0100, Ian Lynagh wrote:
> Hi all,
> 
> This is trac #1338:
>     http://hackage.haskell.org/trac/ghc/ticket/1338#comment:14
>     http://hackage.haskell.org/trac/ghc/attachment/ticket/1338/packagegraph.png
> 
> Initial deadline: 21 Aug (2 weeks).

Generally this looks good if a little on the ultra-fine-grained side. If
we can fold back a few of those tiny single-module packages that'd
probably be good.

I think we should not move the Applicative class however. It belongs in
the same package as Functor and Monad (and we should be encouraging
everything to be an instance of Applicative).

Similarly, I think the Monoid class should stay in base. I don't care so
much about the extra Monoid types currently defined in Data.Monoid but
the class should stay.

I don't think it makes any sense to put Monoid and Applicative in the
containers package. They're almost completely unrelated.

One reason is that classes (but not their instances) are common
interfaces and so belong further down in the package dep graph. People
tend to try to reduce package dependencies so making people depend on
containers to give an applicative instance will mean that in many cases
people simply will not.

I'll let other people comment on Data.Foldable and .Traversable since I
don't use them.

Duncan



More information about the Libraries mailing list