Haskell Weekly News: October 31, 2006

Submitted by dons on Mon, 10/30/2006 - 8:02pm.

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

This week we see a number of community documentation and maintenance efforts, and the appearance of indexed data types in GHC


  • Associated data types in GHC. Manuel Chakravarty announced the availability of indexed data types, an extension of our earlier proposal for associated data types, in GHC's development version. Detailed information on where to get the right GHC and how to use indexed types is available from the Haskell wiki.

  • Yhc Bytecode library 0.3. Robert Dockins announced the release of the Yhc Bytecode library, version 0.3.

  • Haskell Program Coverage. Andy Gill checked the latest version of HPC, with GHC support, into the head GHC branch

  • Haskell Mersenne Twister. Lennart Augustsson made available his Haskell implementation of the Mersenne Twister random number generator.

  • Haskell-specific Google Search Engine. Don Stewart initialised a Haskell-specific search engine, as part of Google's coop engine system, which seems to do a good job of targeting just Haskell sites, in particular, mailing list items

  • A process for submitting library extensions. The libraries hackers have developed a document describing how to best go about contributing new code to the core Haskell libraries. On a similar note, the GHC team has prepared a page on best practice for GHC submissions.

  • How to create a Haskell project. Don Stewart and Ian Lynagh prepared some guidelines on starting your own Haskell project.


This section covers the Haskell' standardisation process.


  • Haskell Quiz/Ruby Quiz. Haskell Hackers have started recording Ruby Quiz solutions on the Haskell wiki. Lots of fun puzzles are available, and its a useful resource if you're learning the language.

  • Infinite, open, statically constrained HLists. Oleg Kiselyov described heterogeneous sequences that admit infinite sequences and permits post-hoc addition of new elements, even to an already infinite sequence.

  • Lexically scoped type variables: new proposal. Ben Rudiak-Gould made a new proposal for scoped type variables.

  • Simple GADT parser for the eval example. Greg Buchholz sought advice on creating evaluators with GADTs

  • Package mounting. Frederik Eaton proposed an alternative design for package mounting extensions to the package system.

  • Function types as instances of Num. Greg Buchholz had an interesting problem using functions as instances of Num

  • Yhc Core file generation. Neil Mitchell suggested that it was time to start taking YHC Core output a bit more seriously, and made some proposals.

  • Parallelism in GHC 6.6 and seq vs. pseq. Simon Marlow noticed that Control.Parallel exports seq when in fact it should probably export pseq.


  • Lectureships in Software Engineering. Jeremy Gibbons announced that applications are invited for three new University Lectureships in Software Engineering, at the University of Oxford. For further information, including full details of the application procedure and selection criteria, see here.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Simon Marlow: In fact, you don't need an evil scheduler, an ordinary scheduler will do this.
  • Conor McBride: My operating hypothesis is that even ordinary schedulers are evil...
  • Larry Wall: Continuations - if you know what they are - I don't need to explain them. If you don't know what they are - you don't want to know.
  • Cale: [discussing names for Haskell, after suggesting Sapphire] Diamond: The Hardest Programming Language on Earth
  • ConorMcBride: So, taking Void to be the colour of the empty bikeshed ...
  • cjeris: I like how you conveniently gloss over the part where your head explodes.
  • dons: C++: Creating blub programmers since 1985
  • mwc: I can only believe that Java is a conspiracy perpetrated by keyboard manufacturers
  • Pseudonym: (:[]) looks like a ninja robot pirate monkey
  • chessguy: We've got satan and beelsebob in here, and talking about unicycling.... this channel is guaranteed to be a bad influence on me now
  • dons: fold (\water dish -> wash water dish) soapywater dishes
  • masklinn: Scheme, on the other hand, is dynamically compiled and thus doesn't 'fail early', it fails as late as it can, which produces weird error unless you're into testing. Beginners never are into testing.
  • Riastradh: Assume that I haven't the faintest idea of what a comonad is, beyond that if a monad goes `voob', then a comonad goes `boov'
  • Anonymous: It is quite possible that 'the ultimate teaching language' was not actually invented when Steele and Sussman came down from the mountain bearing a spool of 9-track magtape...
  • sigfpe: How can Haskell not be the programming language that all mathematicians should learn?
  • Syzygy: > let _'__'_'''_'__'_=2 in _'__'_'''_'__'_
  • ihope>: > let _' __ ___ (____:_____) = __ ____ (_' __ ___ _____); _' _ __ [] = __ in _' (+) 0
  • Syzygy: one thing that stands out is the relatively low distance between thought expressed in my ordinary day-to-day mathematical discourse, and thought expressed in Haskell code

Code Watch

  • Tue Oct 24 14:29:07 PDT 2006. Andy Gill. Haskell Program Coverage. This large checkin is the new ghc version of Haskell Program Coverage, an expression-level coverage tool for Haskell. You can run the coverage tool with -fhpc at compile time. Main must be compiled with -fhpc.

  • Tue Oct 24 02:13:57 PDT 2006. Simon Marlow. Split GC.c, and move storage manager into sm/ directory. In preparation for parallel GC, split up the monolithic GC.c file into smaller part

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.

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