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

This episode comes to you live from Portland, Oregon, where the HWN automaton now lives, running on a virtual host at Galois, Inc.


Cabal 1.2.0 released. Thomas Schilling announced that Cabal version 1.2.0 is available. The major new feature in this release is support for Cabal configurations. This allows package authors to more easily adopt their package descriptions to different system parameters such as operating system, architecture, or compiler. In addition, some optional features may be enabled or disabled explicitly by the package user.

SparseCheck. Matthew Naylor announced SparseCheck, a library for typed, depth-bounded logic programming in Haskell allowing convenient expression of test-data generators for properties with sparse domains. More information on the home page.

monadLib 3.3.0. Iavor Diatchki announced a new version of monadLib, adding the identiy transformer, and a family of deriving functions.

ListLlke. John Goerzen announced ListLike, a generic interface to the various list-like structures in Haskell.

HaL2: Meeting Haskell in Leipzig 2: videos. Klaus Meier announced that the videos and presentations of the talks given at HaL2 are now online.

The Monad.Reader: Issue 8. Wouter Swierstra announced that the latest issue of The Monad.Reader is now available. Issue 8 consists of the following two articles: Brent Yorgey on 'Generating Multiset Partitions' and Conrad Parker's 'Type-Level Instant Insanity'

Haskell mode plugins for Vim. Claus Reinke announced improved haskell mode plugins for vim.

hstats-0.1. Marshall Beddoe announced a statistical computing module for Haskell.

HIntegerByInt. Isaac Dupree announced a reimplementation, in Haskell, of the Integer type that Haskell provides in its Prelude. It is designed in mind of being actually usable as the implementation of that type, for compilers. It is also a module that exports a working Integer type. It is in terms of only basic Prelude functions, lists, and Int. It is NOT a purely inductive definition, because Int is much faster than a purely inductive definition would allow, and nevertheless often easier to come by (more portable, license-wise, size-wise, nuisance-wise...) than GMP or other C bignum libraries.

OzHaskell: Australian Haskell Programmers Group. Manuel Chakravarty started organising OzHaskell, and Australian Haskell user's group.

Israeli Haskell Programmers Group. B K also seeks to form an Israeli Haskell user's group

xmonad 0.3. Don Stewart announced the 0.3 release of xmonad. xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use.

HPDF 1.0. alpheccar announced version 1.0 of the HPDF library.

pcap: user-level network packet capture. Bryan O'Sullivan announced the release of pcap 0.3.1

Gtk2Hs Tutorial. Hans van Thiel announced a port of the GTK2 tutorial by Tony Gail and Ian Main to Haskell's gtk2hs.

An efficient lazy suffix tree library. Bryan O'Sullivan posted a suffix tree library to hackage. It implements Giegerich and Kurtz's lazy construction algorithm, with a few tweaks for better performance and resource usage.

Bay Area Functional Programmers. Keith Fahlgren announced the formation of the Bay Area Functional Programmers group. This group is for anyone using or interested in functional programming and functional programming languages, particularly strongly typed languages such as Haskell, OCaml and SML.

Haskell irc channel reaches 400 users. Don Stewart noticed that, five and a half years after its inception, under the guiding hand of Shae Erisson (aka shapr), the Haskell IRC channel on freenode has reached 400 users!

Guihaskell and PropLang 0.1. Asumu Takikawa announced the results of his Google Summer of Code project: Guihaskell, a graphical REPL using PropLang and work on PropLang, a GUI library built on Gtk2hs that allows for high level design.

HAppS-Data 0.9: XML, Pairs, HList, deriveAll. Alex Jacobson announced that the components of HAppS are being released as individual useful packages. HAppS-Data is the first in a series, and provides useful operations on XML data.

Introduction to proving Haskell code. Tim Newsham put together a small intro lesson on proving Haskell code using quickcheck, equational reasoning and Isabelle/HOL.

Very Fast Searching of ByteStrings. Chris Kuklewicz announced a Boyer-Moore algorithm implemented for strict and lazy bytestrings (and combinations thereof). It finds all the overlapping instances of the pattern inside the target.

Infinity 0.1. Austin Seipp announced Infinity v0.1. an IRC bot in the essence of lambdabot; that is, it should be extendable through plugins and plugins should be easy to write, modify and contribute.


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.


A regressive view of support for imperative programming in Haskell. Paul Hudak sparked an interesting thread about the effect on the language of rich support for imperative programming.

Conference roundup


A top tier Investment bank is looking for a Haskell developer. Kyle McBeath announced that there is a available a permanent position in London, joining a cross asset team. You will be able to use Haskell commercially everyday, be generously compensated and be on the forefront of technology in banking. This is a great opportunity for PhD students or above with proven experience of Haskell programming.

Postdoctoral Fellowship in Functional Programming. Graham Hutton announced that applications are invited for a 3-year postdoctoral research fellowship in functional programming, to work on the EPSRC-funded project 'Reasoning About Exceptions and Interrupts'.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

Code Watch

Notable new features and bug fixes to the Haskell compilers.

Thu Sep 6 09:19:48 PDT 2007. Norman Ramsey . massive changes to add a 'zipper' representation of C--

Tue Aug 14 03:36:23 PDT 2007. Ben Lippmeier. Add graph coloring register allocator. Refactored linear allocator into separate liveness annotation and allocation stages. Added graph coloring allocator, use -fregs-graph to enable. New dump flags are -ddump-asm-native -- output of cmm -> native transform. -ddump-asm-liveness -- code annotated with register liveness info -ddump-asm-coalesce -- output of register move coalescing (this is a separate pass when using the coloring allocator) (this could change in the future) -ddump-asm-regalloc -- code after register allocation -ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator -ddump-asm-conflicts -- a global register liveness graph in graphviz format The new register allocator will allocate some registers, but it's not quite ready for prime-time yet. The spill code generator needs some work.

About the Haskell Weekly News

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