[Haskell] Haskell Weekly News: September 27, 2006
Donald Bruce Stewart
dons at cse.unsw.edu.au
Wed Sep 27 02:51:31 EDT 2006
Haskell Weekly News
Issue 42 - September 27, 2006
Welcome to issue 42 of HWN, a weekly newsletter covering developments
in the Haskell community. 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
This week we see a new Hugs release, and the results of the ICFP
contest are out! We feature a special report on the Commercial Users
of Functional Programming workshop, courtesy of John Hughes
* ICFP Contest Results. CMU's Principles of Programming Group
announced the results of this year's ICFP programming
contest. Congratulations to the winning team from Google, 'Team
Smartass', (Christopher Hendrie, Derek Kisman, Ambrose Feinstein
and Daniel Wright), who used Haskell along with C++, Bash and
Python. Haskell has now been used by the winning team three years
running! An honourable mention to team Lazy Bottoms, another
Haskell team, who managed to crack several of the puzzles first.
Five teams from the #haskell IRC channel were placed in the
top 50. A video stream of the results announcement is
available, shot and cut by Malcolm Wallace. Many thanks to the
CMU team for organising such a great contest!
* New release of Hugs. Ross Paterson announced a new minor
release of Hugs, fixing a few bugs with the May 2006 release, and
with libraries roughly matching the forthcoming GHC 6.6 release.
It is available from the Hugs page.
* HAppS version 0.8.2. Einar Karttunen announced the release of
the Haskell Application Server version 0.8.2. HAppS is a Haskell
web application server for building industrial strength internet
applications safely, quickly, and easily. With HAppS you focus
entirely on application functionality implemented in your
favourite language and you don't have to worry about making sure
all sorts of server subsystems are functioning properly. More
* Codec.Compression.GZip and .BZip. Duncan Coutts released two
new packages: zlib and bzlib, which provide functions for
compression and decompression in the gzip and bzip2 formats,
directly on ByteStrings. Both provide pure functions on
streams of data represented by lazy ByteStrings. This makes it
easy to use either in memory or with disk or network IO. There is
API documentation is available here and here.
* System Fc branch merged into GHC. Manuel Chakravarty merged
the System Fc branch of GHC into GHC head. This is a
significant development, adding extensions to GHC to support an
FC-based intermediate language, a new implementation of GADTs,
along with indexed data types and indexed newtypes (generalised
associated data types). More details about the
* Job writing security software in Haskell. Andrew Pimlott
announced that Planning Systems, Inc. has a job opportunity
for Haskell programmers, writing a high-assurance authorization
system. Job description.
* Dr Haskell 0.1. Neil Mitchell released Dr Haskell, a tool to
help suggest improvements to your Haskell code. Dr Haskell will
analyse your code, and suggest shorter alternatives for rewriting.
* BitSyntax for Haskell. Adam Langley released a bit syntax
library for Haskell, based on Erlang's bit syntax (great for
building and breaking up binary structures). Nice!
* File fuzzing. Tim Newsham made available FileH, a Haskell tool
for generating test data via random file mutation. More
* A DSL for state machines. Stephane Bortzmeyer announced a
Haskell implementation of a proposal to the IETF to standardize
a language used for finite state machines (which are common in
IETF standards). The reference implementation is available.
* A language tag parser. Stephane Bortzmeyer announced
GaBuZoMeu, a set of programs to parse and check language
tags (see RFC 4646 produced by the IETF Working Group LTRU -
Language Tag Registry Update).
This section covers the Haskell' standardisation process.
* 'Here' documents
The Commercial Users of Functional Programming workshop (CUFP),
held in association with ICFP, attracted a record turn-out this
year. 57 attendees came to listen to 9 speakers talk about commercial
uses of Scheme, Erlang, Reflect, OCaml, and Haskell. Four of the
speakers talked about applications of Haskell.
* Linspire in Haskell. Clifford Beshers talked about the adoption of
Haskell at Linspire. Linspire switched recently from OCaml to
Haskell, citing readability, classes, the IO monad, and more
complete libraries as reasons. So far CGI scripts and a package
autobuilder have been implemented in Haskell. Static typing, and
the use of purely functional data structures on disk, have helped
make for reliable code. Performance has been generally good,
although Parsec parsers proved to be slow on larger files--a
problem that was solved using Data.ByteString. Space leaks have
not been a problem, perhaps because frequent IO keeps programs
strict. Belying the myth that functional programmers are hard to
recruit, Linspire's announcement that they were adopting Haskell
generated several resumes, despite explicitly stating that they
were not recruiting.
* Haskell programming at Credit Suisse. Howard Mansell talked about
Haskell programming at Credit Suisse in New York. This group's
business is derivative trading for clients. Valuing complex
derivatives is computationally costly, requiring nightly runs on
thousands of CPUs. There is a real competitive advantage in being
able to build models quickly, since some exotic derivatives may
only be traded 10-100 times in total. Previously models were built
using Excel, with heavy computations delegated to C++ plugins.
Most of the Excel code has now been replaced by Haskell, with
Excel just providing the user interface (which in turn is
generated by DSELs). The work has been done by Lennart
Augustsson and Gabriele Keller, but Credit Suisse needs more
Haskell programmers -- they're hiring.
* Hardware design at Bluespec Inc.. Rishiyur Nikhil talked about
Bluespec Inc, which offers System Verilog tools implemented in
about 90K loc of Haskell. Bluespec's tools are based on MIT
research in the 90s into generating hardware from term rewriting
systems; using Bluespec's 'rules' complex hardware can be
described at a high level, improving productivity and reducing
errors. Selling the tools based on Haskell requires short, punchy
examples to convince old hands that there is a better way than
writing RTL by hand. Bluespec have started sales, and many more
trials are under way.
* Aetion, AI and Haskell. Garret Morris talked about Haskell
applications at Aetion, which is a defence contractor offering
AI applications based on Bayesian nets. Rapidly changing
priorities make it important to minimize the code impact of
changes, which suits Haskell well. Aetion have developed three
main projects in Haskell, all successful. Haskell's concise code
was perhaps most important for rewriting: it made it practicable
to throw away old code occasionally. DSELs allowed the AI to be
specified very declaratively. Less successful was the decision to
link Haskell to a GUI in Java: the need to serialize data made it
impossible to use functions as representations, which was
unfortunate. Other issues included getting libraries to work
together, patchy Windows support, and a need for more debugging
* Curious Functor class. Ashley Yakeley described the curious
class of functors for which foralls can move across.
* Variadic functions and typeCast. Michael Shulman submitted a
general version of the trick to implement variadic functions in
Haskell outlined by Oleg
* Serialising existential types. Misha Aizatulin pondered the
interesting problem of serialisation of datatypes with existential
constructors. Several options were suggested.
* Replacing GMP. Peter Tanski updated the page relating to
portably replacing GMP in GHC (and other Haskell systems)
Haskell news from the blogosphere.
* Lambda abstractions to be added to C++
* Haskell in Ruby: a Ruby Prelude
* Google Research announcement of their ICFP teams' results
* Some analysis of previous ICFP contest results
* Simple unix tools in Haskell
* Bazaar vs Darcs
* CVS vs Darcs
* Adventures in Open Source Erlang
* Is functional programming going mainstream?
Quotes of the Week
* Clifford Beshers : "When we code in Haskell, we go home on time"
* Bulat : "There is new Time library, which is supposed to replace
old System.Time. We hope that it will happen before 2038"
* edwardk : "I should probably just type up the problem
specification in Haskell and click compile. Funny how that seems
to yield the answer"
* vincenz : "OCaml used to be pretty, Haskell made it ugly"
* glguy : "I remember what class I was in when I was reading Hudak's
book and discovered `fix'. Life altering..."
* glguy : "> take 10 $ map length $ fix (([()]:).scanl (++) [()])"
* lambdabot : "[1,1,2,3,5,8,13,21,34,55]"
* agentzh : "Haskell is really a powerful weapon"
* gaal : "You know you've been reading lots of Haskell papers
when... someone says '(bbiab, $job)' and you try mentally to run
:t on that"
* audreyt : "Pugs seems to be just my excuse to apply each and every
technique from the GHC changelogs..."
* Pseudonym : "[OlegFacts] Oleg solves N P-hard problems in N log N
time... in the type system"
* dons : "[On improving Cabal dependency handling] fps 0.8 is an
exemplary instance of part number fps 0.8. Interestingly, this one
is lavender. Also, it is broken: it is (a fps 0.8 missing a base 1.0)."
* Mark Bessey : "When really massively-parallel systems start to
become more common, the programming model will have to change.
What languages you'll likely use to program these beasts is an
interesting question - most likely, it'll be a functional
language, something like Haskell, or Erlang."
* Philippa : "[vincenz] Forget theory, it's about pragmatics
[Philippa] we're talking FP, they tend to be the same thing"
Contributing to HWN
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
More information about the Haskell