Haskell Weekly News: January 02, 2007

Submitted by dons on Mon, 01/01/2007 - 9:10pm.

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

This week brings a new release of vty and HsColour, and some interesting discussion over the holiday break.


hscolour-1.6. Malcolm Wallace announced HsColour, a popular syntax-highlighter for Haskell code. It can generate ANSI terminal colour codes, HTML, and CSS, and can insert hyperlink anchors for function definitions (useful in conjunction with Haddock). HsColour-1.6 is now available. The major addition is a new LaTeX output mode.

Dimensional: Statically checked physical dimensions. Björn Buckwalter announced version 0.1 of Dimensional, a module for statically checked physical dimensions. The module facilitates calculations with physical quantities while statically preventing e.g. addition of quantities with differing physical dimensions.

vty 2.0. Stefan O'Rear announced a new major version of vty. Differences from 1.0 include: vty now uses a record type for attributes, instead of bitfields in an Int; vty now supports setting background colors; you can now explicitly specify 'default' colors; vty now supports Unicode characters on output, automatically setting and resetting UTF-8 mode.

'Lambda Revolution' tshirts. Paul Johnson announced the creation of a new Haskell tshirt, on the theme of 'The Lambda Revolution'. Tshirts are available from CafePress, and the designs are freely available.


Beautiful concurrency. Simon Peyton-Jones mentioned that he's been writing a chapter on concurrency and transactional memory for a new book, 'Beautiful code'. A first draft is available and Simon welcomes constructive suggestions for improvement. The book is aimed at a general audience of programmers, not Haskell geeks, so tries to explain everything necessary. If you are not a Haskell expert, your input would be particularly valuable.

Limits to implicit parallelism in functional applications. John DeTreville announced a short paper about how much implicit parallelism there might be in ordinary functional applications.

Inlining higher order functions. Norman Ramsey asked about fine grained control for inlining in higher order functions.

Red-black trees as a nested datatype. Jim Apple described how to implement red-black trees as a nested datatype.

SYB for XML: deserialization and collections. Alexander Jacobson asked about approaches to simplifying boilerplate in HAppS associated with XML serialization and state deserialization.

Flattening a lisp-style tree. pphetra asked about flattening heterogeneous lists (or trees) in Haskell.


Functional programming at Jane Street Capital. Yaron Minsky announced that Jane Street Capital is again looking to hire some top-notch functional programmers. Of particular note is that Jane Street Europe Ltd. now has an office in London, and we are particularly interested in hiring someone for that office with strong systems administration skills in addition to experience with functional programming languages. The ideal candidate has: a commitment to the practical, experience with functional programming languages (such as Haskell). Applicants should also have experience with UNIX and a deep understanding of computers and technology and a strong mathematical background.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • chessguy: [in regards to #haskell] man, it's amazing the difference between what happens when someone asks for help here, and what happens when they ask for help in another language channel
  • cjeris: It's amazing what some languages do to make thinking impossible, seemingly justified by the assumption that no one thinks anyway, so it's more important to make non-thinking programming as easy as possible.
  • edwinb: I've just walked past a poster advertising a gig by a band called 'The Awkward Squad'. I assume this means they provide output, play concurrently, and people take exception to them.
  • kfish: Apparently @pl also doubles as the command for producing an unintelligible flip-stream
  • Binkley: [Monads as clothes] using unsafePerformIO is kind of like going naked in public, might be safe in some contexts, but you really don't want to know what happens if you do it in a really bad one
  • quazimodo: I know why you guys are so ready to deal with me and put up with noob questions ... you program so fast compared to other language users that you have time to mess around?
  • iulus: IO, IO, it's off to bind we go ...
  • dons: all your imperative are belong to us
  • Logan Capaldo: I like constructing things with type errors. It lets me read the error and try and figure out what I'm really trying to do
  • glguy: In true Haskell form, after I realized what I was actually doing... all my functions melted down to about 2 lines each
  • jcreigh: I've found learning Haskell makes me feel vastly inferior to Haskell coders. ('Oh,', they say, 'That's just a fold over the hyper-monad fluxbox list. Here's the one-line replacement for your entire program.')
  • Saizan: [New Year's Fun] Yesterday I was so drunk I was trying to typecheck the people at the party... 'What's your monad!?'

Code Watch

Wed Dec 27 17:03:48 PST 2006. Manuel M T Chakravarty. Parse and desugar equational constraints. With -findexed-types, equational constraints can appear in contexts wherever class predicates are allowed. The two argument types need to be boxed and rank 0.

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