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


purely functional lazy non-deterministic programming. Sebastian Fischer announced the explicit-sharing library, which supports lazy functional-logic programming in Haskell.

nntp 0.0.1. Maciej Piechotka announced the release of nntp, a library to connect to nntp (i.e. mainly USENET) servers.

OpenGLRaw Sven Panne announced the release of OpenGLRaw, a low-level binding for OpenGL. The eventual goal is to make the OpenGL package easier to install, more modular and a bit more flexible.

pgm-0.1 on Hackage. Frederick Ross announced pgm, a pure Haskell library to read and write PGM images. It seamlessly handles the divide between 1 and 2 byte per pixel images; reads and writes UArrays; can handle multiple PGMs concatenated one after another in a file; and encodes and decodes all comments in the PGM header, which can be used to drop arbitrary metadata into files in a human readable manner.

iteratee-0.2.1 released. John Lato announced the release of iteratee-0.2.1, a major update to the iteratee library. This library provides types and functions for performing enumerator/iteratee based I/O operations in Haskell, as described by Oleg. The new version is a large redesign, including support for resumable exceptions and a greatly simplified interface.

testrunner-0.9. Reinier Lamers announced testrunner, a new framework for running unit tests. It can run unit tests in parallel; can run QuickCheck and HUnit tests as well as simple boolean expressions; and comes with a ready-made main function for your unit test executable.

serial-0.2. Frederick Ross announced version 0.2 of serial, a library for working with line-oriented POSIX serial ports.

hunp-0.0. Deniz Dogan announced hunp, a command-line utility which automagically calls the right "unpacker" program for you and works on both files and directories.

Nemesis : easy task management. Jinjing Wang announced a new release of nemesis, a simple rake-like task management tool.

Data.Reify.CSE. Sebastiaan Visser announced the data-reify-cse module, which implements common sub-expression elimination for graphs generated by the Data.Reify package. This package might especially be useful for optimizing simple compilers for referentially transparent domain specific languages.

Hac phi accommodation: register by June 15 for reduced rate! Brent Yorgey reminded anyone interested in attending Hac phi that Monday 15 June is the deadline for getting a special reduced hotel rate.

alloy-1.0.0 (generic programming). Neil Brown announced the first release of the Allow generic programming library. It is intended to be a fairly fast blend of several other generics approaches, such as SYB (but without the dynamic typing) and Uniplate (but allowing an arbitrary number of target types), for performing transformations on specific types in large tree structures.

StrictBench 0.1 - Benchmarking code through strict evaluation. R.A. Niemeijer announced the release of StrictBench, a library for timing full evaluation of values.

haskeem 0.7.0 uploaded to hackage. Uwe Hollerbach announced haskeem, a small scheme interpreter written in Haskell.

numtype 1.0 -- Type-level (low cardinality) integers. Bjorn Buckwalter announced the Numeric.NumType module, now released as its own package, which implements a unary type-level representation of integers, supporting addition, subtraction, multiplication, and division.

Google Summer of Code

Progress updates from participants in the 2008 Google Summer of Code.

space profiling. Gergely Patai has some pretty graphs generated by his profiling library.

haskell-src-exts. Niklas Broberg is quite close to releasing haskell-src-exts 1.0.0, as soon as he has full and correct support for (almost) everything code-related, with only a few things left to do. He also wrote a post explaining the intricacies of parsing code containing the 'forall' keyword (well, whether it is a keyword depends on which extensions are enabled...)

fast darcs. Petr Rockai made a bit less progress this week, with finals and other things interfering, but made some progress on some documentation, tracking down a performance regression, and other things.


Adding an ignore function to Control.Monad. Gwern Branwen proposed adding an 'ignore' function to Control.Monad which explicitly changes an m a into a m (). Bikeshedding (and some useful discussion) ensued.

Wiki user accounts. Philippa Cowderoy began a discussion of what to do about the current situation with wiki user accounts (namely, that account creation is disabled due to spam, and the one maintainer of the wiki can't always respond to account creation requests instantly).

Lightweight type-level dependent programming in Haskell. Ryan Ingram made an interesting post about implementing lightweight closed type classes in Haskell.

who's up for a hackathon? (ICFP, late Aug, early Sept). Eric Kow wanted to know who would be interested in having a hackathon immediately before or after ICFP in Edinburgh.


Galois is hiring functional programmers. Don Stewart announced that Galois is hiring! See the announcement for more details.

Blog noise

Haskell news from the blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them!

Quotes of the Week

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.

To help create new editions of this newsletter, please see the information on how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get http://code.haskell.org/~byorgey/code/hwn/ .