Haskell Libraries Wishlist

Manuel M T Chakravarty chak at cse.unsw.edu.au
Sun Oct 17 21:04:32 EDT 2004

With all that, there are two major issues here (ie, two sorts of users):

(1) People looking for libraries and

(2) people writing libraries.

Re (1) - library users
Currently the wiki page doesn't seem to be known widely.  It would have
to be prominently linked from the 


In fact, I think we need to make a decision on which page we want to be
The Haskell Libraries Page(TM).  Two partly overlapping, partly
inconsistent tables of libraries are just going to confuse people who
search for libraries.  I think, we have four alternatives:

(a) The current haskell.org/libraries/ page.
  Pros: we have got it
  Cons: developers cannot alter it themselves; we know it doesn't work

(b) The wiki page
  Pros: Easy to edit for everybody; exists already
  Cons: Developers need to use the wiki (not hard, but probably a hurdle
    for those who have never done it); free form style of wiki is more
    work to edit and a common format must be maintained by convention

(c) freshmeat.net
  Pros: Easy to edit for everybody; exists already; very little work to 
    keep entries up to date with all the formatting and layout being 
  Cons: Developers need to get a freshmeat account (not hard, but it
    needs to be done)

(d) Develop a user-updateable database for haskell.org
  Pros: custom made; easy to edit, little work to keep entries up to 
  Cons: Somebody has to implement it; it's been proposed before and not 

I am strongly against (a) and (d).  Alternative (a) is bad, we know
that.  Alternative (d) is vapour-ware and we need something working
now.  Besides (d) is going to need a maintainer and I think we can use
our time for better things. (Note that freshmeat entries are actually
edited by the admin crew for grammar, style, and consistency.  We'd
never have the resources to do that effectively - ie, with the same turn
around they got.)

It is harder to decide between (b) and (c).  In the interest of getting
a result quickly, the wiki may be the better choice, as we already have
got a page which just needs to be cleaned up.  The wiki also makes it
easy for people to add some documentation etc to libraries they
provide.  However, (c) has the advantage that it is browsed by
non-Haskell people, too.  So, if we have got a good library in some
domain, non-Haskellers will find it in their freshmeat search and maybe
become interested in Haskell.  Moreover, freshmeat's layout and and data
organisation is perfect for listing software packages, whereas with the
wiki, we need to agree on some layout and maintain it.

Personally, I would tend to go with the wiki as The Haskell Libraries
Page, but encourage people (at least for larger projects) to add
freshmeat entries, which are then linked from the wiki.  Basically, we
wiki would serve as an index into the freshmeat with the ability to
easily provide additional annotation and documentation.

Re (2) - library developers
The story for developers is a much more complicated for all the reasons
SimonM listed.  I agree that we should move forward on the package
infrastructure and Cabal.  However, as this is certainly a longer term
development, let's decouple it from the issue of how to provide an
up-to-date library index to users.

I propose to do the following:

- Prominently advertise the wiki library page at 
  http://haskell.org/libraries/ stating that we phase out the static 
  page in favour of the wiki page.

- Copy all useful information from the static page to the wiki.

- Decide on a layout and page structure for the libraries on the wiki. 
  (If we want to accommodate more libraries, we probably need some 
  subdivision of the information etc.)

- Encourage and set up freshmeat entries for at least larger projects 
  and link them from the wiki.


On Wed, 2004-10-13 at 19:49, Simon Marlow wrote:
> On 13 October 2004 02:18, Shae Matijs Erisson wrote:
> > Manuel M T Chakravarty <chak at cse.unsw.edu.au> writes:
> > 
> >> How can this be solved?  Somebody could sit down and build a system
> >> that supports author submission that get automatically processed
> >> etc.  AFAIK that has been proposed before and nothing happened.  So,
> >> I wonder why not reuse a resource that already exists, namely
> > 
> > This exists: http://www.haskell.org/hawiki/LibrariesAndTools
> > 
> >> Freshmeat entries need not necessarily be created and updated by the
> >> authors of some software.  Instead, interested users can maintain a
> >> freshmeat entry. This facility seems to improve the accuracy of the
> >> freshmeat db. 
> > 
> > freshmeat seems like a good idea too.
> I'd just like to say something about the direction I think we want to be
> headed here.  As our package infrastructure and Cabal
> (http://www.haskell.org/libraryInfrastructure/) become more mature, we
> should aim to base our library story around Packages.  This way we get a
> consistent view of libraries, with a consistent set of tools to build,
> install and manage them.
> So what's still needed for this to happen?  Well, I'm planning to
> support more of the Package proposal in GHC 6.4 (package versioning,
> exposed/unexposed packages & modules, per-user package configuration
> etc.). We also need more people to package their libraries using Cabal,
> try to find areas of weakness and help fix them.
> Finally, we need one place to list Packages.  The LibrarisAndTools page
> in the Wiki is a good start, but it needs to transition to be more
> Package-centric.  Just starting a new section for Cabal packages would
> be a good idea for now.
> We need to provide easily accessible answers to questions that
> prospective library contributors have:
>   - what package name can I use?  (short answer: choose one that isn't
>     used yet).
>   - what module names can I use?
>   - what guidelines are there for designing library interfaces?
> We have various half-baked or out of date answers to these questions,
> but it's probably about time we revised the story and made it more
> prominent.  Hmm, I think I just talked myself into tackling this.
> Cheers,
> 	Simon

More information about the Libraries mailing list