Edited by Jeremy Gibbons and Oege de Moor in honour of Richard Bird's 60th birthday. A symposium was held to mark the occasion. Information about the book and ordering details can be found here.
Some of the code and software from the book is available from the links below. Please note that the software versions will be those from around the time of publication of the book and are provided here for the convenience of those wishing to "dip into" the chapters or use a version known to work with the examples in them. If you want to use any of these pieces of software seriously, you are strongly encouraged to obtain the latest version from the appropriate webpage, linked below.
The entire collection is also available as a gzipped tar archive and a zip file.
Answers to the exercises for some of the chapters are available, and will be released to bona fide instructors. Currently this only includes chapters 3 and 5. Please contact Jeremy Gibbons for details.
Code from the chapter, all Haskell 98 compliant: Binary heap trees, Maxiphobic heaps, Round-robin heaps, Skew heaps
QuickCheck: gzipped tar archive,
zip file.
(Note that QuickCheck is distributed with GHC and Hugs.)
Code from the chapter, all Haskell 98 compliant:
Queues:
incorrect,
corrected,
incorrect algebraic,
corrected algebraic.
Thereom Prover:
incorrect,
corrected.
Code from the chapter, all Haskell 98 compliant: Lists, Numbers, Trees.
Haskore: gzipped tar archive, zip file.
Code from the chapter, Haskell 98 compliant: Music.hs.
MAG: gzipped tar archive, zip file.
No code or software available.
The commercial product MLFi is based on the concepts in this chapter.
Pan (binaries are Windows only, but source provided): gzipped tar archive, zip file.
The Xilinx distribution of Lava should be available shortly from here.
Code from the chapter, Haskell 98 compliant: Logic.hs
Arrows notation preprocessor:
gzipped tar archive,
zip file.
(Note that the 6.2 release of GHC will contain in-built support for
arrows notation.)
Code from the chapter, all Haskell 98 compliant: Prettier printer, Tree example, XML example.
Code from the chapter, requires Haskell 98 + existential types: Term representation, Generic functions, Dynamic values, Generic traversals and queries, Normalisation by evaluation, Functional unparsing, Phantom typing library.