
Dear all, We've had a meeting discussing the next steps in developing a Common Library for Generic Programming at the Haskell Workshop. This email summarizes the main points. Furthermore, I have added some observations of my own, marked with [JJ:]. The main requirements for the library are ease of use and stability. [JJ: by stability we mean: we'll use the same API for a longer period; ease of use might mean different things to different people. I suppose we'll make the meaning of ease of use more clear while we go.] Furthermore, the library should be based on Haskell 98, + maybe commonly accepted extensions that we expect will end up in Haskell'. But we should be careful with using extensions for the Common library, the `purer' the better, from a standard point of view. We might take a levelled approach here: offer a library for Haskell 98, a library for Haskell' (if we know in time what that's going to be), and a library for Haskell'+addenda (if those are going to come). We want to start with finding out the weaknesses and strengths of the various approaches. Meanwhile we want to construct a set of examples with which we can illustrate the different characteristics of the approaches (gsize and functorial map were mentioned). [JJ: Andres Loeh, Ralf Hinze and I have written a paper about Comparing approaches to generic programming in Haskell, see http://www.cs.uu.nl/ research/techreps/UU-CS-2006-022.html. It does not discuss several of the candidate libraries. But it does give a nr of examples used for comparing the approaches, namely encode/decode, eq , functorial map, show, and update. Each of the examples illustrates different characteristics of generic programming. This might be a starting point for the examples.] Furthermore, we would also like to develop a benchmark (examples + desired input/output behaviour) which can be used to (also) benchmark performance. Hopefully we can extract several generic programming characteristics from the examples. It would be good to extract a document from the email discussion, in which we describe the comparison of the different approaches, and later the proposal for a Common library. Bruno Oliveira expressed an interest in helping, Johan is also willing to invest, and maybe others will want to join in as well. [JJ: I suppose we should set up a darcs or svn project for the document/paper?] [JJ: it might be nice to try to condense the final results in a research paper, a la Siek et al who compared generics a couple of years ago.] The next step is thus a discussion of the advantages and disadvantages of the different approaches. We want to have the discussion linearly through the approaches, focussing on one approach at a time (but of course other approaches may appear in the discussion as well). [JJ: what order should we take here? Chronological? That might make it a bit easier? - Light-weight Generics and Dynamics - SYB (including the Revolutions stuff?) - Generics for the Masses - Generics as a library - Smash your Boilerplate - RepLib - Extensible superclasses (WGP'06) - Almost compositional functions Did I include all proposals here? I think two weeks per proposal might be enough, on avarage? This would imply we are ready with the discussions by the beginning of next year. I'm on holidays for a couple of weeks in October, so I'll have a bit of a false start, but I suppose we should try to not let us distract by the absence of some of the people in the discussion. Of course, it is always possible to contribute about a particular method even if its assigned time slot has passed.] I propose to start the discussion next week, October 2, with Light- weight generic and dynamics, and from then on take the next paper on the list after two weeks. I'll also announce the initiative on the Haskell, generic-haskell, and dgp mailing lists this week. All the best, Johan
participants (1)
-
Johan Jeuring