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

Are you ready for the 12th Annual ICFP programming contest? It begins this Friday, don't miss it! Let's reclaim Haskell's rightful place as the programming language of choice for discriminating hackers.

Announcements

Haskell protocol-buffers version 1.5.0. Chris Kuklewicz announced version 1.5.0 of the protocol-buffers, protocol-buffers-descriptor, and hprotoc packages to Hackage. This catches up to Google's version 2.1.0: support for "repeated" fields for primitive types; fields can now be marked deprecated; the type name resolver will no longer resolve type names to fields; and more.

12th Annual ICFP Contest. Mark Huntington Snyder announced the 12th Annual ICFP Programming Contest, hosted by the University of Kansas Computer Systems Design Laboratory at the Information and Telecommunication Technology Center. The contest will be held on the weekend of June 26-29. The contest task will be released sixteen seconds after 13:00 Central Daylight Time (US) on Friday, and entries will be accepted until 13:00:16 CDT on Monday. There is no preregistration required, and participation is free and open to all. Teams may participate from any location, and may use any programming language(s). Read the contest blog or subscribe to the RSS feed to receive timely updates before and during the contest.

clock 0.1 released. Cetin Sert announced the release of clock, a package for convenient access to high-resolution clock and timer functions of different operating systems. It is planned to consist of two layers; the lower layer will provide direct access to OS-specific clock and timer functions like clock_gettime of Posix or GetTickCount of Windows, and its upper layer shall then provide a common API for all supported systems. Currently only the lower level is being developed.

Turbinado V0.7. Alson Kemp announced version 0.7 of Turbinado, a Ruby-On-Rails-like web server and web framework for Haskell. It is designed to make creating web application using Haskell both easy and joyful. The primary additions in version 0.7 are FastCGI support and a new templating system (which includes HAML and HTML support). Additional details can be found here.

haskeline-class. Antoine Latter announced haskeline-class, a small library providing a newtyped MonadState instance for haskeline which lifts the class operations to an inner monad (as opposed to its existing instance).

hyena. Johan Tibell announced the first release of hyena, a library for building web servers, based on the work on iteratee style I/O by Oleg Kiselyov. The library allows you to create web servers that consume their input incrementally, without resorting to lazy I/O. This should lead to more predictable resource usage.

Haskell-based iPhone development. Conal Elliott announced a collaboration wiki page for anyone working with Haskell to make iPhone apps.

Fwd: Boston Haskell June 23rd meeting: openings for Lightning Talks. Ravi Nanavati announced that there are several available slots for "lightning" (5 minute) talks at the June 23 meeting of the Boston Area Haskell Users' Group.

haskell-src-exts 1.0.0 rc1. Niklas Broberg announced a series of release candidates for haskell-src-exts-1.0.0 (as of this writing, the most recent release candidate is version 0.5.6). This version is intended to fully support parsing of almost all Haskell extensions. Please help with testing!

BostonHaskell: Next meeting - June 23rd at MIT CSAIL Reading Room (32-G882). Ravi Nanavati announced the second meeting of the Boston Area Haskell Users' Group, scheduled for Tuesday, June 23rd from 6:30pm - 8:30pm. It will be held in the MIT CSAIL Reading Room (32-G882, i.e. a room on the 8th floor of the Gates Tower of the MIT's Stata Center at 32 Vassar St in Cambridge, MA). Talks include "Automagic Font Conversion with Haskell Typeclasses" by Frank Berthold, and "Intermediate Language Representations via GADTs" by Nirav Dave.

traversal transformations. Sjoerd Visscher exhibited some code for Church-encoded container structures using their Foldable instance, and later announced the fmlist package based on the same code, along with a surprising example of a lazy 'middle-infinite' list (where elements can be taken from the beginning or the end!).

hledger 0.6 released. Simon Michael announced the release of hledger 0.6. See the announcement for a list of the new features and other information.

Discussion

Adding swap to Data.Tuple. roconnor proposed adding swap and swap' functions to Data.Tuple.

Revamping the module hierarchy. Johan Tibell began an interesting discussion about package names, module names, and the module hierarchy.

Confusion on the third monad law when using lambda abstractions. Jon Strait asked about the third monad law, leading to some clarification on what precisely the law says, and some interesting discussion on idiomatic use of the (<=<) (Kleisli composition) operator.

Need some help with an infinite list. Gunther Schmidt asked for some help generating a particular infinite list, and got a number of interesting suggestions.

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/ .