Proposal: Add these two handy functions to Data.List

Stephen Tetley stephen.tetley at
Sat Jul 3 08:30:52 EDT 2010

On 2 July 2010 22:59, Cale Gibbard <cgibbard at> wrote:

> ----- Note: the following is a bit of a rant. This isn't really the
> right place for it, but...
> The obvious place to put the Comonad class is in the Prelude, but it
> seems the Prelude never changes any more, enmeshed between the
> competing nets of implement-first and standardise-first. Putting it in
> Control.Comonad instead wouldn't hurt so much either I suppose.
> Regardless, that situation saddens me, and I wish that as a community
> we could devise a system for making progress on changes we'd all like
> to see on that level (or most of us, anyway).


> What more infrastructure do people think we need?

Hi Cale

The libraries list does a good job in the negative of rejecting
proposals to extend the Base[1]; but there doesn't seem to be a
mechanism working in the opposite direction. i.e. there is no
structure to "finesse" libraries outside Base. The Platform's work
seems to be delivering large, functionally stable, "useful" [2]
libraries and Hackage is essentially a free-for-all.

Considering "foundational" libraries - that's-to-say, ones defining
general classes such as Data.Default or operations like
permutations/splitting on common data types - on Hackage they
generally come in 2 sizes:

a) too small, personally I don't want to depend on them and risk
dependency conflicts elsewhere.

b) too large, where the library author enumerates a domain rather than
gets to its essence. Its somewhat churlish to criticize an author for
this, but again I'd still rather not depend on the library.

Also style-wise, outside Base there's a perhaps unfortunate variance
of coding styles, GHC-pragma choices etc. Again its rather churlish to
criticise authors on style grounds, but style variance does work
against cohesion.

If we want to incubate good foundational libraries, maybe there is a
case for a "second standard library" - where the inclusion criteria is
more open than for additions to Base, but where there is more
community feedback on the code and APIs than the independent author
model of Hackage.

Best wishes


[1] I don't really follow the library submissions so I can't comment
on that side of things:

[2] By useful I'm meaning that a casual user should be able to
identifier easily what the package actually does - they might need a
manual to work with the package, but they won't need a "education"
(vis-a-vis the cottage industry in monad tutorials).

More information about the Libraries mailing list