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

A bit late this week since over the weekend I was trying to get some unruly satellites to behave (with moderate success). Anyway, some fun stuff this week: Haskell on the iPhone; new libraries for 3D animation, web development, session types; new releases of haskell-src-exts and darcs; and more. Also, if it seems that there haven't been many quotes lately, it's because people haven't been @remembering very many in #haskell. I cannot telepathically sense (via the Haskell-force, hereafter known as the "Horce") when someone says something funny.

Announcements

Haskell Symposium call for participation. Stephanie Weirich announced that registration is now open for the ACM SIGPLAN Haskell Symposium 2009, to be held on 3 September 2009 in Edinburgh, Scotland (co-located with ICFP). The purpose of the Haskell Symposium is to discuss experiences with Haskell and future developments for the language. The scope of the symposium includes all aspects of the design, semantics, theory, application, implementation, and teaching of Haskell.

jhc 0.6.1. John Meacham announced the release of jhc 0.6.1, featuring a a much simplified cross-compilation mechanism.

X Haskell Bindings 0.3. Antoine Latter announced the 0.3.* series release of the X Haskell Bindings. This release, like the prior 0.2.* series focuses on making the API prettier.

happstack-0.3.2. Matthew Elder announced the release of happstack-0.3.2, with many changes, updates, and bug fixes.

sendfile-0.1. Matthew Elder announced the release of sendfile, a library which exposes zero-copy sendfile functionality in a portable way. Right now it natively supports linux 2.6+ (maybe older too) and windows 2000+; on other platforms it will fall back seamlessly to a portable haskell implementation.

Reusable Corecursive Queues via Continuations. Leon Smith requested feedback on a draft of an upcoming article in Monad.Reader issue 14, "Lloyd Allison's Corecursive Queues: Why Continuations Matter", describing the implementation of the control-monad-queue package.

Haskell on the iPhone. Ryan Trinkle announced that his company, iPwn Studios Inc., is currently preparing to release an open source patch to GHC that allows it to output binaries for iPhone OS. The patch will be released under a BSD license as soon as possible and hopefully integrated into the GHC main-line in the near future.

Program to set the GNOME desktop background picture randomly. Colin Paul Adams announced gnome-desktop, a library which periodically picks a random picture from $HOME/Pictures, and sets it as the GNOME desktop background.

loli: a minimal web dev DSL. Jinjing Wang announced the release of loli, a web development DSL built on top of hack. It allows you to easily define routes, build your custom template backends through a simple Template interface, and integrate with other hack middleware.

Cal3D animation library. Gregory D. Weber announced the Cal3D for Haskell project, which provides a partial binding to the C++ Cal3D animation library, a platform- and graphics-API-independent C++ library for skeletal-based character animation. There are three packages available on hackage: cal3d-0.1, a Haskell binding to the Cal3D library itself; as well as cal3d-opengl-0.1 and cal3d-examples-0.1.

A Reader Monad Tutorial. Henry Laxen announced a nice Reader monad tutorial.

full-sessions: yet another implementation of session types. Keigo Imai announced the pre-release of full-sessions, yet another implementation of session types in Haskell. Session types are used to statically check the safe and consistent use of communication channels according to protocols. A notable advantage of this implementation is that it requires almost no type annotation or term annotations. and at the same time provides full functionality of session types including channel-generation and channel-passing.

darcs 2.3 beta 1. Petr Rockai announced the immediate availability of a first beta release of darcs 2.3. There are a number of improvements and bugfixes over the last stable release, 2.2 (see the announcement for a full list). Moreover, work has been done on performance of "darcs whatsnew" for large repositories. This has also introduced a slight risk of regressions, but please note that all of the disruptive changes are in read-only code paths: the new code will never touch your repository, so it is unable to cause permanent harm. The worst that could happen is that you get no or bad diff from "darcs whatsnew". Please help test it (cabal install darcs-beta)!

New release of ZeroTH. Robin Green announced a new release (2009.6.23.3) of ZeroTH, a tool for preprocessing Haskell code to run splices and remove Template Haskell dependencies. Major changes include support for more Haskell code via haskell-src-exts 1.0.0, better error messages, and librification.

Emping-0.6 and Tests/Examples. Hans van Thiel announced version 0.6 of Emping, a (prototype) interactive tool for the discovery and analysis of (universal, not statistical) predictive rules in tables of nominal data.

haskell-src-exts-1.0.0. Niklas Broberg announced the first stable release of the haskell-src-exts package, version 1.0.0! haskell-src-exts is a package for Haskell source code manipulation. In particular it defines an abstract syntax tree representation, and a parser and pretty-printer to convert between this representation and String. It handles (almost) all syntactic extensions to the Haskell 98 standard implemented by GHC, and the parsing can be parametrised on what extensions to recognise.

HaRe (the Haskell Refactorer) in action - short screencast. Claus Reinke linked to a short video showing HaRe, the Haskell refactorer, in action. HaRe still exists---but needs some love in the form of time and/or funding for maintenance and continued development.

Trivial pivoting for the DSP lu decomposition. Fernan Bolando announced the beginnings of a simple circuit simulator using haskell, which uses a modified version of the haskell DSP library matrix, extended with a simple pivoting method.

Discussion

make some Applicative functions into methods, and split off Data.Functor. Ross Paterson proposed moving several functions such as (<$), (*>), and so on into their respective classes with default definitions, to allow for specialized implementations.

base library and GHC 6.12. Ian Lynagh began a discussion about how to structure the base library in the future.

Proposal: ExplicitForall. Niklas Broberg proposed adding a new GHC extension, ExplicitForall, to be used for turning on explicit 'forall' syntax in types, and to help disentangle and simplify some existing extensions.

Generic Graph Class. Ivan Lazar Miljenovic proposed a generic graph class to serve as a common interface for the many Haskell libraries that deal with graph data structures.

Type system trickery. Andrew Coppin asked how to statically ensure certain properties of recursive data structures with the type system, generating varied suggestions involving GADTs.

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