Haskell Weekly News: September 23, 2007

Submitted by dons on Sun, 09/23/2007 - 9:12pm.

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, an 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.
  • numbers-2007.9.23. Lennart Augustsson. numbers: instances of the numerical classes for a variety of different numbers.

  • hmp3 1.3. Don Stewart. hmp3: An mp3 player with a curses frontend.

  • utf-string 0.2. Eric Mertens. utf8-string: A UTF8 layer for IO and Strings.

  • hstats 0.1. Marshall Beddoe. hstats: A library of commonly used statistical functions.

  • sparsecheck 0.2. Matthew Naylor. SparseCheck: a library for logic programming in Haskell that allows convenient description of test-data generators.

  • monadLib 3.3.0. Iavor Diatchki. monadLib: A collection of monad transformers.

  • ListLike 1.0.0. John Goerzen. ListLike: Generic support for list-like structures in Haskell.

  • cabal-test 0.1. David Himmelstrup. cabal-test: Cabal-test is a tool for testing cabal projects.

  • HPDF 1.1. alpheccar. HPDF: a PDF library.

  • hxt 7.3. Uwe Schmidt. hxt: The Haskell XML Toolbox.

  • irc 0.1. Trevor Elliott. irc: A small library for parsing IRC messages

  • hsdns 1.0. Peter Simons. hsdns: an asynchronous DNS resolver based on GNU ADNS.

  • streamproc 1.0. Peter Simons. streamproc: Stream Processer Arrow

  • hsemail 1.0. Peter Simons. hsemail: Parsers for the syntax defined in RFC2821 and 2822

  • funcmp 1.0. Peter Simons. funcmp: Functional MetaPost is a Haskell frontend to the MetaPost language

  • cabal-rpm 0.3.1. Bryan OSullivan. cabal-rpm: This package turns Haskell Cabal source packages into source and binary RPM packages.

  • Finance-Quote-Yahoo 0.3. Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com

  • xmonad 0.3. Spencer Janssen. xmonad: a minimalist tiling window manager for X

  • hint 0.1. Daniel Gorin. hint: an interpreter monad for Haskell expressions based on ghc-api

  • ipprint 0.2. Gleb Alexeyev. ipprint: Tiny helper for pretty-printing values in ghci console

  • pandoc 0.44. John MacFarlane. pandoc: Conversion between markup formats

  • X11-extras 0.3. Spencer Janssen. X11-extras: Missing bindings to the X11 graphics library

  • dsp 0.2. Matthew Donadio. dsp: Digital Signal Processing, Fourier Transform, Filter design, Frequency estimation, Interpolation, Linear Algebra, Polynomials

  • c2hs 0.15.0. Manuel Chakravarty. c2hs: C->Haskell assists in the development of Haskell bindings to C libraries.

  • regex-base 0.92. Chris Kuklewicz. regex-base: Interface API for regex-posix,pcre,parsec,tdfa,dfa

  • soegtk Duncan Coutts. soegtk: SOE api for gtk2hs

  • hsns 0.5.3. Austin Seipp. hsns: a miniature network sniffer

  • anydbm 1.0.4. John Goerzen. anydbm: Interface for DBM-like database systems

  • suffixtree 0.2.1. Bryan O'Sullivan suffixtree: An efficient, lazy suffix tree implementation.


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

  • nomeata: Haskell is basically Swiss: Small, Efficient, and it is fun to explore the higher parts.
  • Tom Moertel: In the not-too-distant future, perhaps, we might look back in amazement at the days when important security properties were neither free nor guaranteed but expensive and uncertain, underwritten only by the heroic efforts of individual programmers, struggling against impossible odds to achieve inhuman perfection.
  • Adam Turoff: In any case, Simon Peyton Jones is right -- the way forward involves functional programming, whether it means choosing a language like Haskell, or integrating ideas from Haskell into your language of choice.
  • bootslack: Once, around the time of the discovery of fire, there was a large population of people that thought mastering fire would be too difficult so they didn't. The rest of us killed them, cooked them and ate them.

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