Welcome to issue 61 of HWN, a weekly newsletter covering developments in the Haskell community.

The last week was a very exciting week for the Haskell community, with a new GHC release, the first release of Xmonad, a window manager written in Haskell, and DisTract, a new distributed bug tracker, written in Haskell. A number of new Haskell jobs were announced, and several new user groups were formed!


GHC 6.6.1. Ian Lynagh announced a new patchlevel release of GHC. This release contains a significant number of bugfixes relative to 6.6, so we recommend upgrading. Release notes are here. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces.

Xmonad 0.1. Spencer Janssen announced the inaugural release of Xmonad. Xmonad is a minimalist tiling window manager for X, written in Haskell. Windows are managed using automatic layout algorithms, which can be dynamically reconfigured. At any time windows are arranged so as to maximise the use of screen real estate. All features of the window manager are accessible purely from the keyboard: a mouse is entirely optional. Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files.

DisTract: Distributed Bug Tracker implemented in Haskell. Matthew Sackman announced DisTract, a Distributed Bug Tracker. We're all now familiar with working with distributed software control systems, such as Monotone, Git, Darcs, Mercurial and others, but bug trackers still seem to be fully stuck in the centralised model: Bugzilla and Trac both have single centralised servers. This is clearly wrong, as if you're able to work on the Train, off the network and still perform local commits of code then surely you should also be able to locally close bugs too. DisTract allows you to manage bugs in a distributed manner through your web-browser. The distribution is achieved by making use of a distributed software control system, Monotone. Thus Monotone is used to move files across the network, perform merging operations and track the development of every bug. Finally, the glue in the middle that generates the HTML summaries and modifies the bugs is written in Haskell.

IOSpec 0.1. Wouter Swierstra announced the first release of the Test.IOSpec library, that provides a pure specification of some functions in the IO monad. This may be of interest to anyone who wants to debug, reason about, analyse, or test impure code. Essentially, by importing libraries from IOSpec you can the same code you would normally write in the IO monad. Once you're satisfied that your functions are reasonably well-behaved, you can remove the Test.IOSpec import and replace it with the 'real' functions instead.

wl-pprint-1.0: Wadler/Leijen pretty printer. Stefan O'Rear announced wl-pprint-1.0, the classic Wadler / Leijen pretty printing combinators, now in 100% easier to use Cabalised form! PPrint is an implementation of the pretty printing combinators described by Philip Wadler (1997). In their bare essence, the combinators of Wadler are not expressive enough to describe some commonly occurring layouts. The PPrint library adds new primitives to describe these layouts and works well in practice.

London Haskell User Group. Neil Bartlett announced the first meeting of the London Haskell User Group on Wednesday 23rd May from 6:30PM. The meeting will be held at City University's main campus in central London, and Simon Peyton Jones will be coming to give a talk.

New York Functional Programmers Network. Howard Mansell announced a New York area-based network for Haskell (and functional) programmers. The idea is to have a regular meeting through which functional programmers can meet to discuss experiences, get and give information, find jobs.

Data.Proposition 0.1. Neil Mitchell announced the release of Data.Proposition, a library that handles propositions, logical formulae consisting of literals without quantification. It automatically simplifies a proposition as it is constructed using simple rules provided by the programmer. Implementations of propositions in terms of an abstract syntax tree and as a Binary Decision Diagram (BDD) are provided. A standard interface is provided for all propositions.

Book reviews for the Journal of Functional Programming. Simon Thompson sought interested contributors for book reivews for the Journal of Functional Programming. There is a list of books currently available for review.

Reminder: HCAR May 2007. Andres Loeh reminded us that the deadline for the May 2007 edition of the Haskell Communities and Activities Report is only a few days away -- but this is still enough time to make sure that the report contains a section on your project, on the interesting stuff that you've been doing; using or affecting Haskell in some way.

Template 0.1: Simple string substitution. Johan Tibell announced a simple string substitution library that supports substitution ala Perl or Python.

hpaste for emacs. David House announced hpaste.el, an Emacs Lisp library that integrates hpaste, the Haskell pastebin, into Emacs. It provides two functions, hpaste-paste-region and hpaste-paste-buffer, which send the region or buffer to the hpaste server as required.


This section covers the Haskell' standardisation process.


This week's proposals and extensions to the standard libraries.


This week's new libraries in the Hackage library database.


GHC Release Plans. Simon Marlow initiated a discussion on possibe release timelines for upcoming GHC versions.

More inlining. Duncan Coutts asked about more fine grained control over inlining in GHC, to ease term rewriting with RULES

Haskell version of Norvig's Python Spelling Corrector. Pete Kazmier spawned a long thread covering various implementations of spelling correctors in Haskell


Quantitative Functional Programmer. Credit Suisse. The Global Modelling and Analytics Group (GMAG) is responsible for producing state-of-the-art pricing, trading and hedging models for Credit Suisse. These models are used across a range of businesses in the Fixed Income and Equity Divisions. The groups mandate covers all major asset classes including Credit Derivatives, Commodities, Emerging Markets, Equity Derivatives and Convertibles, Exotics, Foreign Exchange, Fund Linked Products, Interest Rate Products and Mortgage Derivatives. GMAG operates globally with 85 members located in New York, London, Hong Kong and Tokyo. We are currently building a Domain Specific Language (embedded in Haskell) that will be used within GMAG. We require intelligent, motivated people to develop and extend this language. These individuals will also work with modellers to aid them in effectively applying these new tools.

Haskell programmer positions. HAppS. HAppS LLC has part-time and full-time positions open for Haskell programmers to: improve the open source Haskell codebase at HAppS.org; implement infrastructure to make it work well in Amazon S3/EC2 environments; make http://pass.net reliable enough to be used by live apps; build the mass market apps we want to run on top of the HAppS/Pass.net platform. We are looking for people who: have substantial experience programming Haskell; have experience building Internet apps (not necessarily in Haskell but would be good), and live in any of these places: the Internet, New York, San Francisco Los Angeles.

Vacancy for a PhD student. Johan Jeuring announced a vacancy for a PhD student in the Strategy Feedback project. Knowledge of Haskell is a big plus; implementation of most of the tools will be done in Haskell. Length: 1+3 years, Open University the Netherlands, Location: Heerlen.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

Code Watch

Apr 19 07:23:58 PDT 2007. Simon Marlow. More debugger improvements. :list shows the code around the current breakpoint. Also it highlights the current expression in bold (the bold/unbold codes are hardwired to the ANSI codes right now, I'll provide a way to change them later). :set stop cmd' causes cmd to be run each time we stop at a breakpoint. In particular, :set stop :list is particularly useful.

Wed Apr 25 03:18:32 PDT 2007. simonpj. Add -fwarn-monomorphism-restriction (on by default) to warn when the MR is used. Users often trip up on the Dreaded Monomorphism Restriction. This warning flag tells you when the MR springs into action. Currently it's on by default, but we could change that.

Thu Apr 26 02:37:19 PDT 2007. Pepe Iborra. New section on debugging lambdas in the ghci user guide

About the Haskell Weekly News

Each week, new editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.

To help create new editions of this newsletter, please see the contributing information. Send stories to dons at cse.unsw.edu.au. The darcs repository is available at darcs get http://www.cse.unsw.edu.au/~dons/code/hwn