Haskell Weekly News: November 22, 2006

Submitted by dons on Wed, 11/22/2006 - 6:32am.

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

This week a new release of the Haskell XML Toolbox, and details for the inaugural Haskell Hackathon are announced. And the HWN half century of issues is on the board!


  • Haskell XML Toolbox 7.0. Uwe Schmidt released a new version of the Haskell XML Toolbox. New in 7.0 is a module for XSLT transformation. The XSLT module implements most of the XSLT standard. The development of the XSLT module is done by Tim Walkenhost in his master thesis, describing the design of the transformer (and the limitations) is included in the distribution. HXT 7.0 works with ghc-6.4 and ghc-6.6. A tutorial is available in the Haskell wiki.

  • Hac: Haskell Hackathon 2007. The Hac organisers announced that the inaugural Haskell Hackathon, Hac 2007, will be held at Oxford University Computing Laboratory, January 10-12, 2007. The plan is to hack on Haskell infrastructure, tools, libraries and compilers. To attend please register, and get ready to hack those lambdas!

  • System.FilePath 0.11. Neil Mitchell announced the release of System.FilePath 0.11, a library for manipulating FilePath's correctly on both Posix and Windows.

  • Darcs release candidate. Tommy Pettersson announced it's time for a new darcs release candidate, 1.0.9rc2. There will probably be yet another release candidate (rc3) before final 1.0.9. Get testing!

  • Safe library 0.1. Neil Mitchell announced the release of Safe library, 0.1. People often have a problem with pattern match errors, and the only helpful message they get is: 'pattern match error'. The Safe library hopes to eliminate some of the frustration this causes by providing versions of these partial functions with more helpful error messages.

  • LocH, located errors 0.1. Don Stewart announced the release of LocH, a small Haskell module providing source location-specific error messages and debugging strings for Haskell code. It uses the compiler-expanded 'assert' token, rather than cpp or m4, to provide a lightweight approach to generating source locations. No preprocessor is required. More information is available at the LocH site, including API documentation.

  • Starting your own Haskell project. Jason Dagit and Don Stewart expanded on the document describing how best to set up a new Haskell project, leading to the creation of mkcabal,a new tool for setting up cabalised Haskell projects.


This section covers the Haskell' standardisation process.


This week's proposals and extensions to the standard libraries.


  • New Arrows tutorial. Tim Newsham wrote a small arrows tutorial, and is looking for feedback.

  • Yhc.Core backends for Haskell/Javascript/C. Neil Mitchell asked about the direction the Yhc Core backends should take.

  • The Burrows Wheeler Transformation. Jon Fairbairn proposed a game to find the most elegant implementation of the Burrows Wheeler transformation and its inverse.

  • More fusion. Claus Reinke described a method for avoiding the O(n) overhead of cons in strict ByteStrings. Some alternative strategies were also suggested.

  • Extending TypeEq: topEq for types. Nicolas Frisby described a solution to an interesting type problem using TypeEq, Oleg followed up with an alternate solution

  • Debugging by the rules. Don Stewart described an idea to use rewrite rules to change mysterious failing functions to more useful variants. More details on using rewrite rules for various ticks have been collected on the wiki.

  • Generalising zip. Jason Dagit wondered about a generalisation of zip to encode functions like isPrefixOf

  • Heterogeneous collections. Valentin Gjorgjioski asked about techniques for heterogeneous data in Haskell. Several solutions were suggested, and a new wiki page collects the details.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Larry Wall: People who succeed in brushing up on Haskell do so by brushing up lazily.
  • xerox: [dons] then again, bots themselves are simple. [xerox] '...they are just a morphism in the category of IRC channels together with an endomapping ...'
  • Dave Love: Presumably people with the taste to program in Haskell will use Emacs anyway.
  • Baughn: I know I always have trouble explaining what the weather is like without involving foldr somehow.
  • Korollary: Darcs is free of chemical toxins of big pharma. It's made using all natural herbs and other woo. It's good for you. Cheers.
  • Pseudonym: A 'newbie', in Haskell, is someone who hasn't yet implemented a compiler. They've only written a monad tutorial.
  • astrolabe: I guess missile launching would have to be in IO
  • dons: Java's type system is unsuitable for young children, the elderly or infirm of constitution
  • earthy: The Haskell standard Prelude is ... a treasure trove. But it does require breaking your mind and reassembling the pieces to unlock the trove.
  • emu: Hijack the stack and take this compiler to Fun-land!
  • norpan: The comonad of the No monad is the Yes monad?
  • robreim: I'm in your base hacking all your lambdas
  • shapr: I was chatting with someone who writes Haskell and at some point they said they're not an academic, and I said that too. And then there was what I perceived to be a small disbelieving silence...
  • simonpj: Maybe if I had an Oleg implant I could express all this in the type system
  • skew: [On the subject of strictness] There is a sequet incantation.
  • ski: Please talk to your son or daughter about parametric polymorphism
  • wadler: The way we can tell it's C# instead of Haskell is because it's nine lines instead of two.

Code Watch

  • Wed Nov 8 09:14:52 PST 2006. Alexey Rodriguez. Addition of PAPI to the RTS. PAPI is a library that supports use of the performance counters built into most CPUs for measuring things like cache misses and branch mispredictions. Alexey Rodriguez has added support for PAPI to the RTS, so we can take measurements of any of the CPU performance counters during the run of a Haskell program, and we even separate out results for the GC from results for the mutator.

About the Haskell Weekly News

Each week, 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.

The Haskell Weekly News is also available in Spanish translation.

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