Haskell Weekly News: January 05, 2008

Submitted by dons on Tue, 01/08/2008 - 10:53pm.

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

This HWN features new releases of the GHC and nhc98 Haskell compilers, a pre-release of darcs 2.0, several new user groups formed, and of course, more than 100 updated and new libraries


GHC 6.8.2. The GHC Team announced the release of GHC 6.8.2, featuring optimisation improvements, improvements to ghci and fixes to standalone deriving.

nhc98 1.2 released. Malcolm Wallace announced the release of nhc98 1.2. 1.20 is a refreshed release with many of the current core library packages included, and a variety of small bugfixes since the last release. It successfully compiles and runs more programs from the nobench suite than jhc, hbc, Hugs, or yhc. It generates an interpreted bytecode that, on the whole runs faster than that generated by Hugs or yhc, and in many cases is also faster than ghci. Although nhc98 is written in Haskell, you don't need an existing Haskell compiler on your platform to build nhc98 - a C compiler will do. Hence, it is portable to almost any unix-like machine with a 32-bit compatibility mode. Many useful build tools come included: hmake (the inspiration for ghc --make), hi (interactive read-eval-print, like Hugs or ghci), cpphs (Haskell-aware replacement for cpp) and hsc2hs (preprocessor for FFI code)

darcs 2.0.0pre2. David Roundy announced the availability of the second prerelease of darcs two, darcs 2.0.0pre2. This release fixes several severe performance bugs that were present in the first prerelease. These issues were identified and fixed thanks to the helpful testing of Simon Marlow and Peter Rockai. We also added support for compilation under ghc 6.4, so even more users should be able to test this release.

The Monad.Reader Issue 9: SoC special. Wouter Swierstra announced a new issue of The Monad.Reader, a 'Summer of Code Special' - it consists of three articles from student participants of Google's Summer of Code, describing the projects they worked on.

What's happening with Haskell? The 13th HCAR. Andres Loeh announced the 13th edition of the Haskell Communities and Activities Report

Teach yourself gtk2hs in 21 hours. Hans van Thiel announced a Gtk2Hs basics tutorial, based on the Tony Gale and Ian Main GTK+2.0 tutorial, is now available for review and comment.

Minimalistic Haskell blog framework. Paul Brown announced a lightweight, experimental blog publishing application, perpubplat

atom. Tom Hawkins announced the release of atom 2007.12; atom is a domain-specific language embedded in Haskell for describing real-time control applications


New and updated libraries in the Hackage library database.
  • bytestring Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.

  • uuagc 0.9.5. Uploaded by ArieMiddelkoop. uuagc: Attribute Grammar System of Universiteit Utrecht.

  • uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.

  • llvm 0.0.2. Uploaded by BryanOSullivan. llvm: Bindings to the LLVM compiler toolkit.

  • HDBC-sqlite3 Uploaded by JohnGoerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.

  • HDBC-odbc Uploaded by JohnGoerzen. HDBC-odbc: ODBC driver for HDBC.

  • dimensional 0.7.2. Uploaded by BjornBuckwalter. dimensional: Statically checked physical dimensions..

  • uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.

  • hsc3 0.1. Uploaded by RohanDrape. hsc3: Haskell SuperCollider.

  • hosc 0.1. Uploaded by RohanDrape. hosc: Haskell Open Sound Control.

  • GLFW 0.2. Uploaded by PaulLiu. GLFW: A binding for GLFW, An OpenGL Framework.

  • control-timeout 0.1. Uploaded by AdamLangley. control-timeout: Timeout handling.

  • hiccup 0.35. Uploaded by KyleConsalus. hiccup: Relatively efficient Tcl interpreter with support for basic operations.

  • phooey 2.0. Uploaded by ConalElliott. phooey: Functional user interfaces.

  • reactive 0.0. Uploaded by ConalElliott. reactive: Simple foundation for functional reactive programming.

  • phooey 1.4. Uploaded by ConalElliott. phooey: Functional user interfaces.

  • hburg 1.1.1. Uploaded by IgorBohm. hburg: Haskell Bottom Up Rewrite Generator.

  • hinotify 0.2. Uploaded by LennartKolmodin. hinotify: Haskell binding to INotify.

  • cabal-rpm 0.3.3. Uploaded by BryanOSullivan. cabal-rpm: RPM package builder for Haskell Cabal source packages..

  • codec-libevent 0.1. Uploaded by AdamLangley. codec-libevent: Cross-platform structure serialisation.

  • irc 0.4. Uploaded by TrevorElliott. irc: A small library for parsing IRC messages..

  • dlist 0.4. Uploaded by DonaldStewart. dlist: Differences lists.

  • AutoForms 0.4.0. Uploaded by MadsLindstroem. AutoForms: GUI library based upon generic programming (SYB3).

  • bktrees 0.2.1. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.

  • bktrees 0.2. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.

  • binary-strict 0.1. Uploaded by AdamLangley. binary-strict: Binary deserialisation using strict ByteStrings.

  • haddock 0.9. Uploaded by SimonMarlow. haddock: Haddock is a documentation-generation tool for Haskell libraries.

  • bytestring-mmap 0.2.0. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.

  • bytestring Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.

  • hiccup 0.3. Uploaded by KyleConsalus. hiccup: Added by KyleConsalus, Wed Dec 19 17:00:42 PST 2007..

  • cedict 0.1.1. Uploaded by JasonDusek. cedict: Convenient Chinese character lookup..

  • TypeCompose 0.3. Uploaded by ConalElliott. TypeCompose: Type composition classes & instances.

  • bytestring-mmap 0.1.2. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.

  • bytestring Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.

  • bytestring-mmap 0.1.1. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.

  • mkcabal 0.3. Uploaded by DonaldStewart. mkcabal: Generate cabal files for a Haskell project.

  • terminfo 0.1. Uploaded by Judah Jacobson. terminfo: Haskell bindings to the terminfo library..

  • Cabal Uploaded by Duncan Coutts. Cabal: A framework for packaging Haskell software.

  • hxt 7.4. Uploaded by UweSchmidt. hxt: A collection of tools for processing XML with Haskell..

  • X11 1.4.1. Uploaded by Spencer Janssen. X11: A binding to the X11 graphics library.

  • dataenc 0.10.1. Uploaded by Magnus Therning. dataenc: Data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, and Base16..

  • bytestringreadp 0.1. Uploaded by Gracjan Polak. bytestringreadp: A ReadP style parser library for ByteString.

  • encoding 0.3. Uploaded by HenningGuenther. encoding: A library for various character encodings.

  • hslua 0.2. Uploaded by Gracjan Polak. hslua: A Lua language interpreter embedding in Haskell.

  • xmonad-contrib 0.5. Uploaded by Spencer Janssen. xmonad-contrib: Third party extensions for xmonad.

  • xmonad 0.5. Uploaded by SpencerJanssen. xmonad: A tiling window manager.

  • pandoc 0.45. Uploaded by John MacFarlane. pandoc: Conversion between markup formats.

  • markov-chain 0.0.1. Uploaded by Henning Thielemann. markov-chain: Markov Chains for generating random sequences with a user definable behaviour..

  • parsedate 3000.0.0. Uploaded by Bjorn Bringert. parsedate: Data and time parsing for CalendarTime.

  • hackage2hwn 0.1. Uploaded by Don Stewart. hackage2hwn: Convert hackage = Hackage RSS feeds to Haskell Weekly News format.

  • hask-home 2007.12.6. Uploaded by BjornBringert. hask-home: Generate homepages for cabal packages.

  • hmarkup 3000.0.1. Uploaded by BjornBringert. hmarkup: Simple wikitext-like markup format implementation..

  • hspread 0.2. Uploaded by AndreaVezzosi. hspread: A client library for the spread toolkit.

  • pcap 0.4.2. Uploaded by BryanOSullivan. pcap: A system-independent interface for user-level packet capture.

  • hogg 0.3.0. Uploaded by ConradParker. hogg: Library and tools to manipulate the Ogg container format.

  • Finance-Quote-Yahoo 0.4.1. Uploaded by BradClawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.

  • Monadius 0.9.20071204. Uploaded by GwernBranwen. Monadius: 2-D arcade scroller.

  • Shu-thing 1.0.20071203. Uploaded by GwernBranwen. Shu-thing: A vector shooter game.

  • hmatrix Uploaded by AlbertoRuiz. hmatrix: Linear algebra and numerical computations.

  • HTTP 3001.0.3. Uploaded by BjornBringert. HTTP: Added by BjornBringert, Fri Nov 30 14:50:55 PST 2007..

  • rss 3000.0.1. Uploaded by BjornBringert. rss: A library for generating RSS 2.0 feeds..

  • haxr 3000.0.1. Uploaded by BjornBringert. haxr: XML-RPC client and server library..

  • fitsio 0.1. Uploaded by EricSessoms. fitsio: A library for reading and writing data files in the FITS data format..

  • YamlReference 0.6. Uploaded by Oren Ben Kiki. YamlReference, YAML reference implementation

  • LambdaShell 0.9.1. Uploaded by Robert Dockins. LambdaShell, simple shell for evaluating lambda expressions

  • Shellac 0.9.1. Uploaded by Robert Dockins. Shellac, a framework for creating shell envinronments

  • EdisonCore Uploaded by Robert Dockins. EdisonCore, a library of efficent, purely-functional data structures (Core Implementations)

  • hmatrix Uploaded by Alberto Ruiz. hmatrix, linear algebra and numerical computations

  • strict-concurrency 0.1. Uploaded by Don Stewart. strict-concurrency, strict concurrency abstractions

  • X11 1.4.0. Uploaded by Don Stewart. X11, binding to the X11 graphics library

  • safecopy 0.3. Uploaded by David Himmelstrup. safecopy, binary serialization with version control

  • HaXml 1.13.3. Uploaded by Malcolm Wallace. HaXml, utilities for manipulating XML documents

  • c2hs 0.15.1. Uploaded by Duncan Coutts. c2hs, C->Haskell Interface Generator

  • calc 0.1. Uploaded by Austin Seipp. calc, small compiler for arithmetic expressions.

  • miniplex 0.2.1. Uploaded by Lukas Mai. miniplex, simple 1-to-N interprocess communication

  • sat 1.1.1. Uploaded by Andrii Zvorygin. sat, CNF SATisfier

  • dimensional 0.7.1. Uploaded by Bjorn Buckwalter. dimensional, statically checked physical dimensions

  • hxt 7.4. Uploaded by Uwe Schmidt. hxt, collection of tools for processing XML with Haskell.

  • dlist 0.3.2. Uploaded by Don Stewart. dlist, difference lists. A list type supporting fast append.

  • mkcabal 0.2. Uploaded by Don Stewart. mkcabal, generate cabal files for a Haskell project

  • Chart 0.5. Uploaded by Tim Docker. Chart, a library for generating 2D Charts and Plots

  • MaybeT 0.1.1. Uploaded by Don Stewart. MaybeT, MaybeT monad transformer

  • regex-pcre 0.93. Uploaded by Chris Kuklewicz. regex-pcre, replaces Text.Regex

  • fixpoint 0.1. Uploaded by Roman Leshchinskiy. fixpoint, data types as fixpoints

  • ChasingBottoms 1.2.2. Uploaded by Nils Anders Danielsson. ChasingBottoms, support for testing partial and infinite values

  • GrowlNotify 0.3. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl

  • pcap 0.4.1. Uploaded by Bryan OSullivan. pcap, a system-independent interface for user-level packet capture

  • bencode 0.3. Uploaded by David Himmelstrup. bencode, parser and printer for bencoded data.

  • stream-fusion 0.1.1. Uploaded by Don Stewart. stream-fusion, provides the standard Haskell list library reimplemented to allow stream fusion. This should in general provide faster list operations, and faster code for list-heavy programs.

  • HTTP 3001.0.2. Uploaded by Bjorn Bringert. HTTP, library for client-side HTTP

  • X11-xft 0.2. Uploaded by Clemens Fruhwirth. X11-xft, bindings to the Xft, X Free Type interface library, and some Xrender parts

  • GrowlNotify 0.1. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl.

  • HsHaruPDF 0.0.0. Uploaded by Audrey Tang. HsHaruPDF, Haskell binding to libharu

  • unicode-normalization 0.1. Uploaded by Reinier Lamers. unicode-normalization, Unicode normalization using the ICU library

  • uniplate 1.0.1. Uploaded by Neil Mitchell. uniplate, uniform type generic traversals

  • lax-0.0.0. Uploaded by Wolfgang Jeltsch. lax, Lax arrows are variants of other arrows which are ?less strict? than the original arrows. They can be used, for example, to produce I/O fixpoints in situations where fixIO would fail.

  • fastcgi 3001.0.1. Uploaded by Bjorn Bringert. fastcgi, a Haskell library for writing FastCGI programs

Conference roundup

New user groups


Prototyping. Peter Verswyvelen announced a job using Haskell for prototyping computer animation and games

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Conal: For me, the heart of functional programming is exactly this separation between model and presentation. The former is naturally functional and compositional, while the latter is often imperative/sequential and not-so-compositional. IO belongs with the latter.
  • ddarius: has programmed too much in Haskell. He now produces code that -compiles- and works the first time
  • disspy: If all you know is C, everything begins to look like a segmentation fault.
  • markedtrees: (On the city of Haskell) Ah yes, Haskell. Where all the types are strong, all the men carry arrows, and all the children are above average.
  • ola-bini: Haskell's type system is really nice, for example, but OCaml's really feels like half of it exists just to cover up holes in the other half, I'm half way into Erlang, but for several reasons the language feels very primitive.
  • so1i.warazd: I'm more and more comfortable spending time with Haskell these days. Haskell may not be the next thing, but whatever the next big thing is, it's probably going to have Haskelly fingerprints all over it?..
  • sylvan: think that the perceived difficulty in using purely functional programming is probably a bit exaggerated these days, as all it means is 'we're explicit about where side effects occur'
  • falvo: I really wish that someone would come up with a type-safe replacement for the likes of Python. Oh, wait, it's called Haskell! Unfortunately, I'm forbidden from using Haskell at work. Sigh
  • Tyler Spaulding: eventually even 'simple' programs will nned multiple threads. Does that mean developers will suddenly flock to Haskell? Again, no. Language designers are well aware of the situation. Sun and Microsoft are constantly working on improving the Java and .NET frameworks. And by the time the average programmer needs it, both will have plenty of support for easy threading
  • ricky clarkson: Haskell is full of Aha and Hah moments for me
  • five9a2: Concurrency aside, I find it common to write Haskell code that is as fast as C. It is true that for most things, the C can be tweaked to go a bit faster, but that tweaking needs to be done on a case-by-case basis. In Haskell, it is easier to compose optimized components. Better algorithms beat an optimized compiler any day and using the best algorithms everywhere in C code tends to be painful, error-prone, and usually disparaged as premature optimization.
  • Jeff Moser: It's been this fear of skills rot that has pushed me to look into Lisp, Haskell, F#, Erlang, and other languages to avoid The Blub Paradox.
  • NFJS 2008 predictions: If you've never programmed in Haskell, now's a good time to learn, because those concepts and syntax are fast making their way towards you...
  • The honey monster: With the advent of multi-core CPUs and the promise of many core processors in the near future it occurrs to me that my interest in functional programming languages could not of happened at a more opportune time. It is not that imperative programming languages are not as capable, merely that functional programming languages seem to be more natural fit

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. Headlines are available as PDF.

To help create new editions of this newsletter, please see the contributing information. Send stories to dons at galois.com. The darcs repository is available at darcs get http://code.haskell.org/~dons/code/hwn/