Haskell Weekly News: May 07, 2007

Submitted by dons on Sun, 05/06/2007 - 11:48pm.

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

This week sees the release of Atom, a hardware description language embedded in Haskell, along with the usual suite of new libraries and tools. In addition, The Monad.Reader Issue 7 was released, and the hackage upload festival continues unabated.


Atom: Hardware Description in Haskell. Tom Hawkins announced the release of Atom, a high-level hardware description language embedded in Haskell, compiles conditional term rewriting systems into conventional HDL.

The Monad.Reader: Issue 7. Wouter Swierstra announced the latest issue of The Monad.Reader. The Monad.Reader is a quarterly magazine about functional programming. It is less-formal than journal, but somehow more enduring than a wiki page or blog post.

HDBC: Haskell Database Connectivity. John Goerzen announced that HDBC 1.1.2 is now released. HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases.

FileManip: Expressive Filesystem Manipulation. Bryan O'Sullivan announced the FileManip package provides expressive functions and combinators for searching, matching, and manipulating files.

photoname: manipulate photos using EXIF data. Dino Morelli announced the release of photoname, a command-line utility for renaming and moving photo image files. The new folder location and naming are determined by two things: the photo shoot date information contained within the file's EXIF tags and the usually-camera-assigned serial number, often appearing in the filename.

RSA-Haskell: Command-line Cryptography. David Sankel announced the release of RSA-Haskell, a collection of command-line cryptography tools and a cryptography library written in Haskell. It is intended to be useful to anyone who wants to secure files or communications or who wants to incorporate cryptography in their Haskell application.

Haskell modes for Vim. Claus Reinke summarised the various Haskell/Vim support currently available

French Translation of Gentle Introduction to H98. The haskell-fr team announced a completed a translation into French of the 'Gentle Introduction to Haskell'.


This section covers the Haskell' standardisation process.


This week's new libraries in the Hackage library database.


The Proper Definition of (evaluate :: a -> IO a). Isaac Dupree described a variant of evaluate with modified semantics to the current implementation.

Why is Data.Set not a monad?. Dan Doel documented the reasons why Data.Set is not currently an instance of Monad.

Chaos. Andrew Coppin announced chaos, a fun image generating mystery program.

The Functional Pearls. Don Stewart collected the functional pearls known to be available online, on to a single page on the Haskell wiki.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Oleg K: So, `bind' is `let' and monadic programming is equivalent to programming in the A-normal form. That is indeed all there is to monads
  • kc5tja: Premature evil is the root of all optimization
  • Tommah: Remember, kids: if you program in a language with side effects, the terrorists win.
  • ndm: Comments are for people who can't sense what their code does from the indentation
  • jcreigh: GHC has lots of interesting features above Haskell98, I've noticed. 'You can take the red pill or the blue pill...' 'Hmm. What's the green pill?' 'What? Oh. That's GHC.'
  • schluehk: It's about a variant of the other big Haskell credo: once it compiles it works. Once you have written a prototype you have also a spec. If this is not agile I don't know what? It is a quite remarkable inversion. Formerly people wanted tools that are so versatile that they let them express almost everything with great ease and where they didn't care a lot about speed optimizations and corner cases in the early iterations. Now people want tools that restricts intentionally their expressivity to let them do big upfront design as source code. They want to be guided to initial perfection. Let's face it: Haskell has quite some momentum in the dialectic move.

Code Watch

Notable new features and bug fixes to the Haskell compilers.

Thu May 3 06:19:55 PDT 2007. Simon Marlow. Add history/trace functionality to the GHCi debugger. The debugger can now log each step of the evaluation without actually stopping, keeping a history of the recent steps (currently 50). When a (real) breakpoint is hit, you can examine previous steps in the history (and their free variables) using the :history, :back and :forward commands.

Wed May 2 09:34:57 PDT 2007. Simon Peyton-Jones. Make records work properly with type families. This fixes Trac #1204. There's quite a delicate interaction of GADTs, type families, records, and in particular record updates.

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.

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