Since its inception in 1987, Haskell has provided a focal point for research in lazy functional programming. During this time the language has continually evolved, as a result of both theoretical advances and practical experience. Haskell has proved to be a powerful tool for many kinds of programming tasks, and an excellent vehicle for many aspects of computing pedagogy and research. The recent definition of Haskell 98 provides a long-awaited stable version of the language, but there are many exciting possibilities for future versions of Haskell.
This special issue of the Journal of Functional Programming is devoted to Haskell, and follows on from a series of four workshops on the language that were held during the period 1995-2000, and have continued to be held every year since. Contributors to any of the four workshops were invited to submit full articles to the special issue, but submission was open to everyone. The original call solicited articles on any aspect of Haskell, including critiques of Haskell 98, new proposals for Haskell, applications or case studies, programming techniques, reasoning about programs, semantic issues, pedagogical issues, and implementation. Six articles were selected for publication, each of which is briefly summarised below:
These articles cover a diverse range of topics, but there are of course many other areas of Haskell research that are not touched upon here. It is encouraging to note that a special double issue was necessary to accommodate the accepted articles, and that four of the six articles are already looking beyond Haskell 98 to the future, by making essential use of additional language features such as multi-parameter classes, functional dependencies, and concurrency.
I would like to thank the authors and the referees for their efforts in producing and reviewing the articles, and Phil Wadler for the opportunity to publish the articles as a special issue of the Journal of Functional Programming.
School of Computer Science
The University of Nottingham