Haskell Weekly News: February 10, 2008

Submitted by dons on Sat, 02/23/2008 - 2:55pm.

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

A quick update HWN this week, with a gazillion new libraries on Hackage

Hackage

New and updated libraries in the Hackage library database.
  • WordNet 0.1.1. Uploaded by Max Rabkin. WordNet: Haskell interface to the WordNet database.

  • lazysmallcheck 0.1. Uploaded by Gwern Branwen. lazysmallcheck: A library for demand-driven testing of Haskell programs.

  • DrIFT 2.2.3. Uploaded by Gwern Branwen. DrIFT: Program to derive type class instances.

  • highlighting-kate 0.2. Uploaded by John MacFarlane. highlighting-kate: Syntax highlighting.

  • leksah 0.1. Uploaded by Juergen NicklischFranken. leksah: Genuine Haskell Face.

  • frag 1.1. Uploaded by Gwern Branwen. frag: 3-D First Person Shooter (FPS).

  • GoogleChart 0.2. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.

  • HFuse 0.1. Uploaded by Gwern Branwen. HFuse: HFuse is a binding for the Linux FUSE library.

  • GoogleChart 0.1. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.

  • Finance-Quote-Yahoo 0.5.0. Uploaded by Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.

  • binary-strict 0.3.0. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • Stream 0.2.3. Uploaded by Wouter Swierstra. Stream: A library for manipulating infinite lists..

  • Finance-Treasury 0.1.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.

  • Hedi 0.1. Uploaded by Paolo Veronelli. Hedi: Line oriented editor.

  • newports 1.1. Uploaded by Brad Clawsie. newports: List ports newer than N days on a FreeBSD system.

  • Finance-Treasury 0.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.

  • GPLib 0.0. Uploaded by Gwern Branwen. GPLib: Generic library for genetic programming.

  • nano-hmac 0.1.1. Uploaded by Hitesh Jasani. nano-hmac: Bindings to OpenSSL HMAC..

  • multiset 0.1. Uploaded by Twan VanLaarhoven. multiset: The Data.MultiSet container type.

  • hpodder 1.1.0. Uploaded by John Goerzen. hpodder: Podcast Aggregator (downloader).

  • bimap 0.2.1. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.

  • monadLib 3.4.4. Uploaded by Iavor Diatchki. monadLib: A collection of monad transformers..

  • IOSpec 0.2. Uploaded by Wouter Swierstra. IOSpec: A pure specification of the IO monad..

  • bimap 0.2. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.

  • strictify 0.1. Uploaded by Sterling Clover. strictify: Find a local optimum of strictness annotations..

  • heap 0.2.2. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • LDAP 0.6.4. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.

  • HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..

  • RJson 0.3.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • network-dns 0.1.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.

  • lcs 0.2. Uploaded by Ian Lynagh. lcs: Find longest common sublist of two lists.

  • tracker 0.1. Uploaded by Will Thompson. tracker: Client library for Tracker metadata database, indexer and search tool.

  • CC-delcont 0.2. Uploaded by Dan Doel. CC-delcont: Delimited continuations and dynamically scoped variables.

  • control-timeout 0.1.2. Uploaded by Adam Langley. control-timeout: Timeout handling.

  • network-dns 0.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.

  • binary-strict 0.2.4. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • heap 0.1.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • HCL 1.3. Uploaded by Justin Bailey. HCL: High-level library for building command line interfaces..

  • yi 0.3. Uploaded by Jean PhilippeBernardy. yi: The Haskell-Scriptable Editor.

  • binary-strict 0.2.3. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • heap 0.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • pureMD5 0.1.2. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..

  • RJson 0.3.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • template 0.1.1.1. Uploaded by Johan Tibell. template: Simple string substitution.

  • network-bytestring 0.1.1.1. Uploaded by Johan Tibell. network-bytestring: Fast and memory efficient low-level networking.

  • ftphs 1.0.4. Uploaded by John Goerzen. ftphs: FTP Client and Server Library.

  • mersenne-random-pure64 0.1.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.

  • Diff 0.1. Uploaded by Sterling Clover. Diff: O(ND) diff algorithm in haskell..

  • crack 0.1. Uploaded by Trevor Elliott. crack: A haskell binding to cracklib.

  • miniplex 0.3.3. Uploaded by Lukas Mai. miniplex: simple 1-to-N interprocess communication.

  • colock 0.2.2. Uploaded by Lukas Mai. colock: thread-friendly file locks that don't block the entire program.

  • mersenne-random-pure64 0.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.

  • network-rpca 0.0.1. Uploaded by Adam Langley. network-rpca: A cross-platform RPC library.

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

  • xmonad 0.6. Uploaded by Spencer Janssen. xmonad: A tiling window manager.

  • codec-libevent 0.1.2. Uploaded by Adam Langley. codec-libevent: Cross-platform structure serialisation.

  • bytestringparser 0.3. Uploaded by Bryan OSullivan. bytestringparser: Combinator parsing with Data.ByteString.Lazy.

  • HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..

  • value-supply 0.1. Uploaded by Iavor Diatchki. value-supply: A library for generating values without having to thread state..

  • derive 0.1.1. Uploaded by Neil Mitchell. derive: A program and library to derive instances for data types.

  • control-timeout 0.1.1. Uploaded by Adam Langley. control-timeout: Timeout handling.

  • mkcabal 0.4.1. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.

  • regexpr 0.2.9. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • mtlparse 0.0.0.5. Uploaded by Yoshikuni Jujo. mtlparse: parse library use mtl package.

  • cgi 3001.1.5.2. Uploaded by Bjorn Bringert. cgi: A library for writing CGI programs.

  • xhtml 3000.0.2.2. Uploaded by Bjorn Bringert. xhtml: An XHTML combinator library.

  • harpy 0.4. Uploaded by Martin Grabmueller. harpy: Runtime code generation for x86 machine code.

  • editline 0.2. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..

  • hmatrix 0.2.0.0. Uploaded by Alberto Ruiz. hmatrix: Linear algebra and numerical computations.

  • regexpr 0.2.8. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • pcre-light 0.3. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.

  • mersenne-random 0.1. Uploaded by Donald Stewart. mersenne-random: Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister.

  • AvlTree 2.4. Uploaded by Adrian Hey. AvlTree: Balanced binary trees using AVL algorithm..

  • fec 0.1.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.

  • COrdering 2.1. Uploaded by Adrian Hey. COrdering: An algebraic data type similar to Prelude Ordering..

  • i18n 0.3. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.

  • binary-strict 0.2.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • regexpr 0.2.6. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • RJson 0.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • regexpr 0.2.5. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • fec 0.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.

  • dataenc 0.10.2. Uploaded by Magnus Therning. dataenc: Data encoding library.

  • regexpr 0.2.3. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • regexpr 0.2.2. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • reactive 0.3. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.

  • regexpr 0.2.1. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • djinn 2008.1.18. Uploaded by Lennart Augustsson. djinn: Generate Haskell code from a type.

  • Etherbunny 0.3. Uploaded by Nicholas Burlett. Etherbunny: A network analysis toolkit for Haskell.

  • regexpr 0.2.0. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • regexpr 0.1.7. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • reactive 0.2. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.

  • srcinst 0.8.10. Uploaded by John Goerzen. srcinst: Build and install Debian packages completely from source.

  • dfsbuild 1.0.2. Uploaded by John Goerzen. dfsbuild: Build Debian From Scratch CD/DVD images.

  • darcs-buildpackage 0.5.12. Uploaded by John Goerzen. darcs-buildpackage: Tools to help manage Debian packages with Darcs.

  • anydbm 1.0.5. Uploaded by John Goerzen. anydbm: Interface for DBM-like database systems.

  • HDBC-sqlite3 1.1.4.0. Uploaded by John Goerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.

  • HDBC-postgresql 1.1.4.0. Uploaded by John Goerzen. HDBC-postgresql: PostgreSQL driver for HDBC.

  • HDBC-odbc 1.1.4.0. Uploaded by John Goerzen. HDBC-odbc: ODBC driver for HDBC.

  • magic 1.0.7. Uploaded by John Goerzen. magic: Interface to C file/magic library.

  • ListLike 1.0.1. Uploaded by John Goerzen. ListLike: Generic support for list-like structures.

  • LDAP 0.6.3. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.

  • hg-buildpackage 1.0.4. Uploaded by John Goerzen. hg-buildpackage: Tools to help manage Debian packages with Mercurial.

  • HDBC 1.1.4. Uploaded by John Goerzen. HDBC: Haskell Database Connectivity.

  • HSH 1.2.5. Uploaded by John Goerzen. HSH: Library to mix shell scripting with Haskell programs.

  • editline 0.1. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..

  • pureMD5 0.1.1. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..

  • hmp3 1.4. Uploaded by Donald Stewart. hmp3: An ncurses mp3 player written in Haskell.

  • binary-strict 0.2.1. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • GLFW 0.3. Uploaded by Paul Liu. GLFW: A binding for GLFW, An OpenGL Framework.

  • hbeat 0.1.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..

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

  • tagsoup 0.4. Uploaded by Neil Mitchell. tagsoup: Parsing and extracting information from (possibly malformed) HTML documents.

  • HaXml 1.19.2. Uploaded by Malcolm Wallace. HaXml: Utilities for manipulating XML documents.

  • Emping 0.3.1. Uploaded by Hans VanThiel. Emping: derives heuristic rules from nominal data.

  • hbeat 0.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..

  • Imlib 0.1.1. Uploaded by Cale Gibbard. Imlib: Added by CaleGibbard, Sun Jan 13 22:26:59 PST 2008..

  • pcre-light 0.2. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.

  • YamlReference 0.8. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.

  • ContArrow 0.0.4. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.

  • ContArrow 0.0.3. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.

  • mkcabal 0.4. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.

  • pcre-light 0.1. Uploaded by Donald Stewart. pcre-light: A lightweight binding to PCRE.

  • YamlReference 0.7. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.

  • Crypto 4.1.0. Uploaded by Dominic Steinitz. Crypto: DES, Blowfish, AES, TEA, SHA1, MD5, RSA, BubbleBabble, Hexdump, Support for Word128, Word192 and Word256 and Beyond, PKCS5 Padding, Various Encryption Modes e.g. Cipher Block Chaining all in one package..

  • containers 0.1.0.1. Uploaded by Ross Paterson. containers: Assorted concrete container types.

  • ConfigFile 1.0.4. Uploaded by John Goerzen. ConfigFile: Configuration file reading & writing.

  • MissingH 1.0.0. Uploaded by John Goerzen. MissingH: Large utility library.

  • hslogger 1.0.4. Uploaded by John Goerzen. hslogger: Versatile logging framework.

  • hslogger 1.0.2. Uploaded by John Goerzen. hslogger: Versatile logging framework.

  • BerkeleyDB 0.3. Uploaded by John McCall. BerkeleyDB: Bindings for Berkeley DB v1.x.

  • BitSyntax 0.3.2. Uploaded by Adam Langley. BitSyntax: A module to aid in the (de)serialisation of binary data.

  • Hashell 0.15. Uploaded by Gwern Branwen. Hashell: Simple shell written in Haskell.

  • binary-strict 0.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • Shu-thing 1.1. Uploaded by Gwern Branwen. Shu-thing: A vector shooter game.

  • zlib 0.4.0.2. Uploaded by Duncan Coutts. zlib: Compression and decompression in the gzip and zlib formats.

  • i18n 0.2. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.

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

  • hscolour 1.9. Uploaded by Malcolm Wallace. hscolour: Colourise Haskell code..

  • regex-pcre 0.94.1. Uploaded by ChrisKuklewicz. regex-pcre: Replaces/Enhances Text.Regex.

  • regex-posix 0.93.1. Uploaded by Chris Kuklewicz. regex-posix: Replaces/Enhances Text.Regex.

  • regex-base 0.93.1. Uploaded by Chris Kuklewicz. regex-base: Replaces/Enhances Text.Regex.

  • regex-compat 0.91. Uploaded by Chris Kuklewicz. regex-compat: Replaces/Enhances Text.Regex.

  • haddock 2.0.0.0. Uploaded by David Waern. haddock: Added by DavidWaern

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Peter: I hardly know Haskell, but I can already write some code much faster and easier than I could do in C/C++ (and I've been programming 2 decades in that language)
  • Miguel Mitrofanov: Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN'
  • Achim Schneider: The essence of non-strictness, though, is another kind of story. Like a golem plowing half of the country until you remember that you placed him a bit absent-mindedly into your backyard and said 'plow', that still won't plow mountains. The essence of strictness is easy, though: get stuck on a stone, fall over and continue moving until you break.
  • monochrom: OCaml tells you 'map f xs is bad because it takes O(n) space'. Haskell tells you 'map f xs' is good because it takes O(1) space
  • ddarius: It says *right on the box* that it it's intended for *both* research and applications.
  • Clifford Beshers: Why Haskell? Medical researchers announced today that MRI studies reveal that the structure of the human brain is significantly different in adolescence than adulthood.
  • Larry O'Brien: I really had a hard time refactoring my Ruby into a packrat parser. This was due, in no small part, because of the difficulty in understanding the types being built-up in the data structure. The paper, in explicitly-typed Haskell: clear as a bell. My code's behavior on unit tests: virtually indistinguishable from random.
  • SuperGrade: Haskell kind of herds you into functional programming. There are advantages to this manner of coding, and I'm getting to thinking you should attempt code this way almost all of the time, regardless of language.
  • Berlin Brown: Haskell is readable, fast, and expressive. I like it.
  • Yaakov Nemoy: Changing the type of a function in Python will lead to strange runtime errors that take some work to debug, whereas, when I tinker with a program in Haskell, I already know it will work once it compiles.
  • Michael Reid: Learning Haskell has completely reversed my feeling that static typing is an old outdated idea. The power of Haskell's type system makes it feel like you are programming in a dynamic language to some degree, yet all of it is type-checked, and that is just *really* cool.
  • weavejester: I've come across many parser generators that are a dream to work with in comparison to lex and yacc. The best one I've found so far is Haskell's Parsec.
  • David Roundy: What's the good of having a haskell-programming computational linguist on board if we can't get static compile-time guarantees of grammatical correctness?
  • Bulat Ziganshin: When FP just pass all the functions and data required for specialization of generic algorithm, OOP provides interfaces, virtual functions, anonymous classes, delegates and lots of other interesting ways to hide the fact of lack of first-class functions :)
  • [Douglas] Adams: was interested in computing --- I think his reaction to being told about functional programming was to wonder what non-functional programming might be.
  • ezekiel: I find Haskell to be like Lisp and APL and Python all put together in a way that leads me quickly to a solid result. Other languages work, but the road to the result is bumpier.
  • AlanYx: I've found that Haskell's uber-strong, static type system does help me be productive, because it increases the class of bugs that can be found at compile time, forces thinking at a higher level, and can help avoid edits to existing code breaking things elsewhere in the code
  • anonymous: Closures in today's world are a 'language geek' feature. Unless done extremely carefully and in a way that supports the various skill levels of developers, they end up being unusable and unsupportable by anything less than computer language savants. In their inherent obscurity and complexity, 'language geek' style closures are about as anti-Java as you can get.
  • anonymous: I work in a Smalltalk shop, where we extend and maintain an application that has been around over a decade. During the maintenance part of our job, it would be really nice to have type declarations on variables. For maintenance, the more dependable information we have, the better! The fewer things that can escape as runtime exceptions, the better!
  • consultant barbie: Languages are hard. Let's write web frameworks and go shopping!

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/

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

Announcements

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

Hackage

New and updated libraries in the Hackage library database.
  • bytestring 0.9.0.4. 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 1.1.3.1. Uploaded by JohnGoerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.

  • HDBC-odbc 1.1.3.1. 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 0.9.0.3. 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 0.9.0.2. 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 1.2.3.0. 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 0.1.1.0. 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 1.2.1.1. Uploaded by Robert Dockins. EdisonCore, a library of efficent, purely-functional data structures (Core Implementations)

  • hmatrix 0.1.0.0. 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

Jobs

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/

Haskell Weekly News: November 11, 2007

Submitted by dons on Sun, 11/11/2007 - 8:14pm.

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

This week sees the release of GHC 6.8.1, to rave reviews. There have been many reports of large performance improvements for Haskell programs, from small to large production systems. Congratulations to the GHC team for such a great release!

Announcements

GHC 6.8.1. Ian Lynagh announced the release of GHC 6.8.1, a new major release of GHC. There have been a number of significant changes since the last major release, including: Haskell Program Coverage support, the GHCi debugger, pointer tagging in the runtime (with up to 10-15% speedups), constructor specialisation, improved optimisations and much more! The full release notes are available.

Gtk2Hs 0.9.12.1. Duncan Coutts announced version 0.9.12.1 of gtk2hs is now available. gtk2hs is the standard graphics library for Haskell.

Lazy SmallCheck 0.1. Matthew Naylor announced Lazy SmallCheck 0.1, a library for exhaustive, demand-driven testing of Haskell programs.

HDBC 1.1.3. John Goerzen announced new releases of HDBC, the Haskell database connectivity kit, and its associated backends (for sqlite3, postgresql, odbc).

xmobar. Andrea Rossato announced the release of Xmobar-0.8, a minimalistic, text based, status bar. It was specifically designed to work with the XMonad Window Manager.

Flymake Haskell. Daisuke Ikegami announced flymake haskell, emacs bindings for interactive Haskell editing.

network bytestring. Johan Tibbel announced, strict ByteString versions of the recv/send family of functions for efficient network IO.

ByteString search. Bryan O'Sullivan announced a cabalised version of the fast Boyer-Moore and Knuth-Morris-Pratt string search code for ByteStrings

Generating free theorems. Janis Voigtlaender announced an improved version of the online and offline free theorems generator for Haskell

hslogger4j 0.1.1. Bjorn Buckwalter announced Hslogger4j, which provides handlers for hslogger (John Goerzen's Haskell logging framework) that are compatible with log4j's XMLLayout.

Infinity 0.3. Austin Seipp announced `infinity', an IRC bot in Haskell

hswm. Remi Turk announced the first and last release of hswm, a Haskell window manager.

Hackage

This week's new libraries in the Hackage library database.
  • xmobar-0.8. Uploaded by Andrea Rossato. xmobar, a minimalistic text based status bar

  • hsSqlite3-0.0.4. Uploaded by Evgeny Jukov. hsSqlite3, bindings for Sqlite3

  • cabal-rpm-0.3.2. Uploaded by Bryan OSullivan. cabal-rpm turns Haskell Cabal source packages into source and binary RPM packages.

  • selenium-0.2.2. Uploaded by Aaron Tomb. selenium, Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser.

  • HPDF-1.3. Uploaded by alpheccar. HPDF. A PDF library with support for several pages, page transitions, outlines, annotations, compression, colors, shapes, patterns, jpegs, fonts, typesetting ...

  • FileManip-0.3.1. Uploaded by Bryan OSullivan. FileManip, a Haskell library for working with files and directories. Includes code for pattern matching, finding files, modifying file contents, and more.

  • stringsearch-0.2. Uploaded by Bryan OSullivan. stringsearch, fast search of ByteStrings.

  • nano-md5-0.1. Uploaded by Don Stewart. nano-md5, ByteString bindings to OpenSSL.

  • denominate-0.4.1. Uploaded by Calvin Smith. denominate provides a main program for performing bulk file and directory renaming, using a built-in filename converter or user-defined converters.

  • ContArrow 0.0.2. Uploaded by Evgeny Jukov. ContArrow, Control.Arrow.Transformer.Cont

  • state 0.0.2. Uploaded by Evgeny Jukov. state. State.

  • infinity 0.3. Uploaded by Austin Seipp. infinity, a tiny, pluggable irc bot.

  • unix-compat 0.1.2.1. Uploaded by Duncan Coutts. unix-compat, portable implementations of parts of the unix package.

  • Ranged-sets 0.1.1. Uploaded by Paul Johnson. Ranged-sets. A ranged set is an ordered list of ranges.

  • IFS 0.1.1. Uploaded by alpheccar. IFS, a library to describe IFS and generate PPM pictures from the descriptions

  • bktrees 0.1.3. Uploaded by Josef Svenningsson. bktrees. Burhard-Keller trees provide an implementation of sets which apart from the ordinary operations also has an approximate member search, allowing you to search for elements that are of a certain distance from the element you are searching for.

  • pqc 0.2. Uploaded by Don Stewart. pqc, a parallel batch driver for QuickCheck

  • strict 0.2. Uploaded by Don Stewart. strict, strict data types.

  • HsSVN 0.2. Uploaded by PHO. HsSVN, (Part of) Subversion binding for Haskell

  • HsHyperEstraier 0.2. Uploaded by PHO. HsHyperEstraier, a HyperEstraier binding for Haskell. HyperEstraier is an embeddable full text search engine which is supposed to be independent to any particular natural languages.

  • HsOpenSSL 0.3.1. Uploaded by PHO. HsOpenSSL, a (part of) OpenSSL binding for Haskell. It can generate RSA and DSA keys, read and write PEM files, generate message digests, sign and verify messages, encrypt and decrypt messages.

  • Finance-Quote-Yahoo 0.4. Uploaded by Brad Clawsie. Finance-Quote-Yahoo, obtain quote data from finance.yahoo.com

  • LRU 0.1.1. Uploaded by Adam Langley. LRU, an LRU data structure

  • base 3.0. Uploaded by Ross Paterson. base, the Prelude and its support libraries, and a large collection of useful libraries ranging from data structures to parsing combinators and debugging utilities.

  • regex-posix 0.72.0.2. Uploaded by Duncan Coutts. regex-posix, posix regex support.

  • xhtml 3000.0.2.1. Uploaded by Bjorn Bringert. xhtml, combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants.

  • Win32 2.1.0.0. Uploaded by Esa Ilari Vuokko. Win32, a binding to part of the Win32 library

  • unix 2.2.0.0. Uploaded by Ross Paterson. unix, POSIX functionality

  • time 1.1.2.0. Uploaded by Ross Paterson. time, time handling.

  • template-haskell 2.2.0.0. Uploaded by Ross Paterson. template-haskell, support for manipulating Haskell syntax trees

  • stm 2.1.1.0. Uploaded by Ross Paterson. stm, software transational memory

  • regex-compat 0.71.0.1. Uploaded by Ross Paterson. regex-compat, backwards compatible regex support

  • regex-base 0.72.0.1. Uploaded by Ross Paterson. regex-base, regex support.

  • readline 1.0.1.0. Uploaded by Ross Paterson. readline, an interface to the GNU readline library

  • random 1.0.0.0. Uploaded by Ross Paterson. random, random number generation

  • QuickCheck 1.1.0.0. Uploaded by Ross Paterson. QuickCheck, automatic testing of Haskell programs

  • process 1.0.0.0. Uploaded by Ross Paterson. process, jobs and processes

  • pretty 1.0.0.0. Uploaded by Ross Paterson. pretty, pretty printing library.

  • parsec 2.1.0.0. Uploaded by Ross Paterson. parsec, monadic parser combinators.

  • parallel 1.0.0.0. Uploaded by Ross Paterson. parallel, support for parallel programming

  • packedstring 0.1.0.0. Uploaded by Ross Paterson. packedstring, packed strings

  • OpenGL 2.2.1.1. Uploaded by Ross Paterson. OpenGL, binding for the OpenGL graphics system

  • OpenAL 1.3.1.1. Uploaded by Ross Paterson. OpenAL, binding to the OpenAL cross-platform 3D audio API.

  • old-time 1.0.0.0. Uploaded by Ross Paterson. old-time, time library.

  • alex 2.2. Uploaded by Simon Marlow. alex is a tool for generating lexical analysers in Haskell

  • Cabal 1.2.2.0. Uploaded by Duncan Coutts. Cabal is the framework for packaging Haskell software

  • HaXml 1.19.1. Uploaded by Malcolm Wallace. HaXml, Utilities for manipulating XML documents

  • HDBC-odbc 1.1.3.0. Uploaded by John Goerzen. HDBC-odbc, ODBC driver for HDBC

  • HDBC-postgresql 1.1.3.0. Uploaded by John Goerzen. HDBC-postgresql is a PostgreSQL driver for HDBC

  • HDBC-sqlite3 1.1.3.0. Uploaded by John Goerzen. HDBC-sqlite3 is a Sqlite v3 driver for HDBC

  • HDBC 1.1.3. Uploaded by John Goerzen. HDBC is a Haskell Database library

  • X11 1.3.0. Uploaded by Don Stewart. X11 is a library of bindings to the X11 libraries and server

  • HsOpenSSL 0.3. Uploaded by Masatake Daimon. HsOpenSSL, (Part of) OpenSSL binding for Haskell

  • Imlib 0.1. Uploaded by Cale Gibbard. Imlib, Haskell binding for Imlib 2

  • Stream 0.2.2. Uploaded by Wouter Swierstra. Stream, a library for manipulating infinite lists.

  • sat 1.0. Uploaded by AndriiZvorygin. sat, CNF SATisfier

  • torrent 2007.10.27. Uploaded by David Himmelstrup. torrent, BitTorrent file parser

  • bencode 0.2. Uploaded by David Himmelstrup. bencode, Parser and printer for bencoded data.

  • SDL 0.5.1. Uploaded by David Himmelstrup. SDL, binding to libSDL

  • NGrams 1.0. Uploaded by Justin Bailey. ngrams, Simple application for calculating n-grams using Google

Discussion

Bootstrapping Haskell. Andrew Copping wondered how the first Haskell compilers were bootstrapped, leading to some interesting historical details.

GHC 6.8 performance. Dan Piponi asked about Haskell performance for low level array manipulation, with some excellent speedups produced by GHC 6.8

Jobs

Software Development Engineer at MSR. Don Syme announced that the F Sharp team is hiring! We have two positions open right now. The first is a software development engineer specializing in Visual Studio and libraries. The second Post Calendar is a software development engineer

PhD position at Chalmers. John Hughes announced that the Functional Programming group at Chalmers is seeking to recruit a PhD student to work on domain-specific languages embedded in Haskell for hardware design, and for programming graphics processors. PhD positions in Sweden are 'real jobs', paying a respectable salary for up to five years.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • faxathisia: Omg! I spent 2 days writing this code and it's worked the first time I run it. Only possible with Haskell :D
  • anonymous: The thing is Haskell isn't suited for young people, whereas the OBJECT model of C++ is
  • sethg: I feel like I still dont understand comonads
  • fnord123: Haskell mainly helps with my C++ template coding when I'm doing money oriented programming
  • Tac-Tics: I get the feeling if all I ever use is the IO monad, someone here will shower me in holy monad fire and cleanse the evil from me.... leaving burn marks all over
  • Anton van Straaten: there's a new movement towards 'functional eating' which involves using a knife and fork (think ML) or chopsticks (Haskell ;) instead of a chainsaw. Its proponents claim that this approach is far superior, but chainsaw fans are skeptical.
  • SamB: what happens in the monad... stays in the monad...
  • Brent Yorgey: Friends don't let friends write in COBOL.
  • Bulat Ziganshin: It's a whole new era in low-level GHC programming

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/

Haskell Weekly News: October 25, 2007

Submitted by dons on Thu, 10/25/2007 - 4:57pm.

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

A huge month for the Haskell community, with the Haskell Workshop, ICFP and CUFP conferences, the second international Haskell Hackathon, and 63 libraries and tools uploaded to hackage! A round of applause to everyone involved!

Hackage

This week's new libraries in the Hackage library database.
  • SDL 0.5.0. Uploaded by Lemmih. SDL, a binding to libSDL.

  • Stream 0.2.1. Uploaded by Wouter Swierstra. Stream, functions, analogous to those from Data.List, to create and manipulate infinite lists

  • bktrees 0.1.1. Uploaded by Josef Svenningsson. bktrees, Burhard-Keller trees provide an implementation of sets which apart from the ordinary operations also has an approximate member search, allowing you to search for elements that are of a certain distance from the element you are searching for.

  • happy 1.17. Uploaded by Simon Marlow. happy, a parser generator for Haskell.

  • HaXml 1.19. Uploaded by Malcolm Wallace. HaXml, utilities for parsing, filtering, transforming and generating XML documents.

  • polyparse 1.1. Uploaded by Malcolm Wallace. polyparse, A variety of alternative parser combinator libraries, including the original HuttonMeijer set. The Poly sets have features like good error reporting, arbitrary token type, running state, lazy parsing, and so on. Finally, Text.Parse is a proposed replacement for the standard Read class, for better deserialisation of Haskell values from Strings.

  • bzlib 0.4.0.1 . Uploaded by Duncan Coutts. bzlib, compression and decompression in the bzip2 format.

  • zlib 0.4.0.1. Uploaded by Duncan Coutts. zlib, compression and decompression in the gzip and zlib formats

  • tar 0.1.1.1. Uploaded by Bjorn Bringert. tar, a library for reading and writing TAR archives.

  • unix-compat 0.1.2.0. Uploaded by Bjorn Bringert. unix-compat, provides portable implementations of parts of the unix package. This package re-exports the unix package when available. When it isn't available, portable implementations are used.

  • oeis 0.1. Uploaded by Brent Yorgey. oeis, Haskell interface to the Online Encyclopedia of Integer Sequences.

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

  • cabal-setup 1.2.1. Uploaded by Simon Marlow. cabal-setup, cabal-setup is a user interface to Cabal. It provides the basic commands for configuring, building, and installing Cabal packages.

  • cabal-install 0.4.0. Uploaded by cabal-devel@haskell.org. cabal-install, apt-get like tool for Haskell. The 'cabal' command-line program simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs.

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

  • iconv 0.4. Uploaded by Duncan Coutts. iconv, provides an interface to the POSIX iconv library functions for string encoding conversion.

  • binary 0.4.1. Uploaded by the Binary Strike Team. binary, efficient, pure binary serialisation using lazy ByteStrings. Haskell values may be encoded to and form binary formats, written to disk as binary, or sent over the network. Serialisation speeds of over 1 G/sec have been observed, so this library should be suitable for high performance scenarios.

  • Cabal 1.2.1. Uploaded by cabal-devel@haskell.org. Cabal: the Haskell Common Architecture for Building Applications and libraries = Libraries: a framework defining a common interface for authors to more easily build their Haskell applications in a portable way. The Haskell Cabal is meant to be a part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and tools.

  • bytestring 0.9. Uploaded by Don Stewart and Duncan Coutts. bytestring. fast, packed, strict and lazy byte arrays with a list interface.

  • arrows 0.3. Uploaded by Ross Paterson. arrows, Several classes that extend the Arrow class, and some transformers that implement or lift these classes.

  • sat 1.0. Uploaded by Andrii Zvorygin. sat, CNF(Clausal Normal Form) SATisfiability Solver and Generator.

  • pcap 0.4. Uploaded by Bryan O'Sullivan. pcap, system-independent interface for user-level packet capture

  • hslogger4j 0.1.1. Uploaded by Bjorn Buckwalter. hslogger4j, provides handlers for hslogger (John Goerzen's Haskell logging library) that are compatible with log4j's XMLLayout. In particular log messages created by the handlers can be published directly to the GUI-based log viewer Chainsaw v2.

  • IndentParser 0.2.1. Uploaded by Piyush P Kurur. IndentParser, provides two modules, Text.ParserCombinators.Parsec.IndentParser and Text.ParserCombinators.Parsec.IndentToken, for constructing parser combinators for indentation based syntactic structures. The former exports the basic indentation parser combinators and the later together with Text.ParserCombinators.Parsec.Language and Text.ParserCombinators.Parsec.Token can be used to define tokenisers for programming languages.

  • lazysmallcheck 0.1. Uploaded by Matthew Naylor and Fredrik Lindblad. lazysmallcheck, a library for exhaustive, demand-driven testing of Haskell programs. It is based on the idea that if a property holds for a partially-defined input then it must also hold for all fully-defined instantiations of the that input. Compared to `eager' input generation as in SmallCheck, Lazy SmallCheck may require significantly fewer test-cases to verify a property for all inputs up to a given depth.

  • HPDF 1.2. Uploaded by alpheccar. HPDF, A PDF library with support for several pages, page transitions, outlines, annotations, compression, colors, shapes, patterns, jpegs, fonts, typesetting ...

  • xmonad. Uploaded by Spencer Janssen and Don Stewart. xmonad, xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use. All features of the window manager are accessible from the keyboard: a mouse is strictly optional. xmonad is written and extensible in Haskell. Custom layout algorithms, and other extensions, may be written by the user in config files. Layouts are applied dynamically, and different layouts may be used on each workspace. Xinerama is fully supported, allowing windows to be tiled on several screens.

  • HCL 1.2. Uploaded by Justin Bailey. HCL, provides a set of functions for building simple command-line interfaces. It allows interfaces which collect values (such as Integers, Dates, or other structured values), build lists of values, and use simple menus. It is not intended to build complex interfaces with full cursor control. It is oriented towards line-based interfaces.

  • safecopy 0.2. Uploaded by David Himmelstrup. safecopy, an extension to Data.Binary with built-in version control.

  • selenium 0.2.1. Uploaded by Aaron Tomb. selenium, Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser.

  • HsOpenSSL 0.2. Uploaded by PHO. HsOpenSSL, a (part of) OpenSSL binding for Haskell. It can generate RSA and DSA keys, read and write PEM files, generate message digests, sign and verify messages, encrypt and decrypt messages.

  • X11-extras 0.4. Uploaded by Spencer Janssen. X11-extras, missing bindings to the X11 graphics library.

  • X11-1.2.3. Uploaded by Don Stewart. X11, a Haskell binding to the X11 graphics library.

  • flow2dot-0.2. Uploaded by Dmitry Astapov. flow2dot, generates sequence diagrams from textual descriptions with help of Graphviz graph drawing tool.

  • hsSqlite3-0.0.1. Uploaded by Evgeny Jukov. hsSqlite, Bindings for Sqlite3

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

  • metaplug-0.1.1. Uploaded by Austin Seipp. metaplug, a ghc-api wrapper, designed to make the api more transparent across releases and offer eval and plugin esque facilities in the form of a simple, easy to modify library.

  • dimensional. Uploaded by Bjorn Buckwalter. dimensional, a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities and units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units. The library is designed to, as far as is practical, enforce/encourage best practices of unit usage.

  • ProbabilityMonads. Uploaded by Eric Kidd. ProbabilityMonads, tools for random sampling, explicit enumeration of possible outcomes, and applying Bayes' rule. Highly experimental, and subject to change. In particular, the Data.Probability API is rather poor and could stand an overhaul.

  • MonadRandom. Uploaded by Eric Kidd . MonadRandom, support for computations which consume random values.

  • MaybeT. Uploaded by Eric Kidd. MaybeT, Support for computations with failures.

  • network-bytestring. Uploaded by Johan Tibell. network-bytestring, Faster and more memory efficient low-level socket functions using Data.ByteStrings instead of Strings.

  • irc. Uploaded by Trevor Elliott. irc, a set of combinators and types for parsing IRC messages.

  • clevercss. Uploaded by Georg Brandl. clevercss, a CSS preprocessing library that allows defining variables and nesting selectors so that you don't need to Repeat Yourself.

  • HsHyperEstraier. Uploaded by PHO. HsHyperEstraier, a HyperEstraier binding for Haskell. HyperEstraier is an embeddable full text search engine which is supposed to be independent to any particular natural languages.

  • libmpd. Uploaded by Ben Sinclair. libmpd, client library for MPD, the Music Player Daemon.

  • hS3. Uploaded by Greg Heartsfield. hS3, provides an interface to Amazon's Simple Storage Service (S3), allowing Haskell developers to reliably store and retrieve arbitrary amounts of data from anywhere on the Internet.

  • infinity. Uploaded by Austin Seipp. infinity, tiny IRC bot, extendable through plugins written in haskell

  • WURFL. Uploaded by alpheccar. WURFL, support for the WURLF file format

  • hburg. Uploaded by Igor Boehm. hburg, a program that generates tree parsers for cost-augmented tree grammars. It is useful for writing code generators for compilers. Given a mapping of a tree structured intermediate representation onto target machine instructions, HBURG generates a code generator that can be plugged into the instruction selection phase of a compiler.

  • ipprint. Uploaded by Gleb Alexeyev. ipprint, tiny helper for pretty-printing values in ghci console

  • numbers. Uploaded by Lennart Augustsson. numbers, instances of the numerical classes for a variety of different numbers: (computable) real numbers, arbitrary precision fixed numbers, arbitrary precision floating point numbers, differentiable numbers, symbolic numbers, natural numbers, interval arithmetic.

  • numeric-quest. Uploaded by Henning Thielemann. numeric-quest, List based linear algebra, similtaneous linear equations, eigenvalues and eigenvectors, roots of polynomials, transcendent functions with arbitrary precision implemented by continued fractions, quantum operations, tensors

  • shell-pipe. Uploaded by Henning Thielemann. shell-pipe, shell scripting stuff.

  • hstats. Uploaded by Marshall Beddoe. hstats, library of commonly used statistical functions.

Libraries

This week's proposals and extensions to the standard libraries.

Conference roundup

Haskell papers presented at the Haskell Workshp, ICFP and CUFP, in Freiburg, Germany.

Jobs

Finance. An NYC finance company requires an expert level Haskell user; must be comfortable with monads, monad transformers, type level programming (i.e. MPTC, overlapping and undecidable instances), and lazy evaluation (i.e. know how to find and eliminate space leaks).

Web Developer. RedNucleus Ltd requires a highly motivated programmer for a full or part-time posititon developing social web applications. Initially you will develop and maintain applications using RubyOnRails or a similar framework, but there will be opportunities to explore new web programming paradigms with declarative languages. The successful application will have exposure to functional programming methodologies, e.g. in Haskell, Lisp or Erlang

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • As someone who has written production code in functional languages (Ive written Haskell for the U.S. Navy) and in other languages (Perl and Ruby for several startups), I have to say that Haskell enabled me to be way more productive than the untyped scripting languages. Ruby is fun, but Haskell lets me get the work done faster and better.
  • Perhaps if C wants to be taken seriously it should provide portability, which has been present in Haskell since the beginning
  • However, since starting learning Haskell I?ve had aha-moments that manifest themselves in a single line of code. This has never happened before. Ever!
  • Cale: Inheritance? Inheritance is broken, anyway
  • DRMacIver: I dread to think what category theory would look like after the software engineering world had got their grubby paws on it. Enterprise variant functors. Commutative UML diagrams.
  • DukeDave: Haskell has the greatest unlearning curve
  • Jon Harrop: As Haskell has shown, laziness cannot be implemented efficient at all.
  • Logan Capaldo: All I want for christmas is monad comprehensions
  • Olathe: We can't be totally sure, though. There might be some value of 1 that wasn't checked.
  • Pseudonym: Smart programmers naturally write monadic code, even if they don't realise it.
  • augustss: Haskell already has enterprise monads; there is a fail method.
  • bitwize: The combinator known as compose; Makes me extremely morose; The full stop is better, than writing in letters; Which makes it extremely verbose
  • glguy: map became not overloaded in the great polymorphic scare of haskell 98
  • mauke: haskell software should move from alpha to beta to eta, then lambda
  • pl0nk: I wonder what SPJ sees when he closes his eyes before answering a question.

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://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: September 23, 2007

Submitted by dons on Sun, 09/23/2007 - 9:12pm.

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

This episode comes to you live from Portland, Oregon, where the HWN automaton now lives, running on a virtual host at Galois, Inc.

Announcements

Cabal 1.2.0 released. Thomas Schilling announced that Cabal version 1.2.0 is available. The major new feature in this release is support for Cabal configurations. This allows package authors to more easily adopt their package descriptions to different system parameters such as operating system, architecture, or compiler. In addition, some optional features may be enabled or disabled explicitly by the package user.

SparseCheck. Matthew Naylor announced SparseCheck, a library for typed, depth-bounded logic programming in Haskell allowing convenient expression of test-data generators for properties with sparse domains. More information on the home page.

monadLib 3.3.0. Iavor Diatchki announced a new version of monadLib, adding the identiy transformer, and a family of deriving functions.

ListLlke. John Goerzen announced ListLike, a generic interface to the various list-like structures in Haskell.

HaL2: Meeting Haskell in Leipzig 2: videos. Klaus Meier announced that the videos and presentations of the talks given at HaL2 are now online.

The Monad.Reader: Issue 8. Wouter Swierstra announced that the latest issue of The Monad.Reader is now available. Issue 8 consists of the following two articles: Brent Yorgey on 'Generating Multiset Partitions' and Conrad Parker's 'Type-Level Instant Insanity'

Haskell mode plugins for Vim. Claus Reinke announced improved haskell mode plugins for vim.

hstats-0.1. Marshall Beddoe announced a statistical computing module for Haskell.

HIntegerByInt. Isaac Dupree announced a reimplementation, in Haskell, of the Integer type that Haskell provides in its Prelude. It is designed in mind of being actually usable as the implementation of that type, for compilers. It is also a module that exports a working Integer type. It is in terms of only basic Prelude functions, lists, and Int. It is NOT a purely inductive definition, because Int is much faster than a purely inductive definition would allow, and nevertheless often easier to come by (more portable, license-wise, size-wise, nuisance-wise...) than GMP or other C bignum libraries.

OzHaskell: Australian Haskell Programmers Group. Manuel Chakravarty started organising OzHaskell, an Australian Haskell user's group.

Israeli Haskell Programmers Group. B K also seeks to form an Israeli Haskell user's group

xmonad 0.3. Don Stewart announced the 0.3 release of xmonad. xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use.

HPDF 1.0. alpheccar announced version 1.0 of the HPDF library.

pcap: user-level network packet capture. Bryan O'Sullivan announced the release of pcap 0.3.1

Gtk2Hs Tutorial. Hans van Thiel announced a port of the GTK2 tutorial by Tony Gail and Ian Main to Haskell's gtk2hs.

An efficient lazy suffix tree library. Bryan O'Sullivan posted a suffix tree library to hackage. It implements Giegerich and Kurtz's lazy construction algorithm, with a few tweaks for better performance and resource usage.

Bay Area Functional Programmers. Keith Fahlgren announced the formation of the Bay Area Functional Programmers group. This group is for anyone using or interested in functional programming and functional programming languages, particularly strongly typed languages such as Haskell, OCaml and SML.

Haskell irc channel reaches 400 users. Don Stewart noticed that, five and a half years after its inception, under the guiding hand of Shae Erisson (aka shapr), the Haskell IRC channel on freenode has reached 400 users!

Guihaskell and PropLang 0.1. Asumu Takikawa announced the results of his Google Summer of Code project: Guihaskell, a graphical REPL using PropLang and work on PropLang, a GUI library built on Gtk2hs that allows for high level design.

HAppS-Data 0.9: XML, Pairs, HList, deriveAll. Alex Jacobson announced that the components of HAppS are being released as individual useful packages. HAppS-Data is the first in a series, and provides useful operations on XML data.

Introduction to proving Haskell code. Tim Newsham put together a small intro lesson on proving Haskell code using quickcheck, equational reasoning and Isabelle/HOL.

Very Fast Searching of ByteStrings. Chris Kuklewicz announced a Boyer-Moore algorithm implemented for strict and lazy bytestrings (and combinations thereof). It finds all the overlapping instances of the pattern inside the target.

Infinity 0.1. Austin Seipp announced Infinity v0.1. an IRC bot in the essence of lambdabot; that is, it should be extendable through plugins and plugins should be easy to write, modify and contribute.

Haskell'

This section covers the Haskell' standardisation process.

Libraries

This week's proposals and extensions to the standard libraries.

Hackage

This week's new libraries in the Hackage library database.
  • numbers-2007.9.23. Lennart Augustsson. numbers: instances of the numerical classes for a variety of different numbers.

  • hmp3 1.3. Don Stewart. hmp3: An mp3 player with a curses frontend.

  • utf-string 0.2. Eric Mertens. utf8-string: A UTF8 layer for IO and Strings.

  • hstats 0.1. Marshall Beddoe. hstats: A library of commonly used statistical functions.

  • sparsecheck 0.2. Matthew Naylor. SparseCheck: a library for logic programming in Haskell that allows convenient description of test-data generators.

  • monadLib 3.3.0. Iavor Diatchki. monadLib: A collection of monad transformers.

  • ListLike 1.0.0. John Goerzen. ListLike: Generic support for list-like structures in Haskell.

  • cabal-test 0.1. David Himmelstrup. cabal-test: Cabal-test is a tool for testing cabal projects.

  • HPDF 1.1. alpheccar. HPDF: a PDF library.

  • hxt 7.3. Uwe Schmidt. hxt: The Haskell XML Toolbox.

  • irc 0.1. Trevor Elliott. irc: A small library for parsing IRC messages

  • hsdns 1.0. Peter Simons. hsdns: an asynchronous DNS resolver based on GNU ADNS.

  • streamproc 1.0. Peter Simons. streamproc: Stream Processer Arrow

  • hsemail 1.0. Peter Simons. hsemail: Parsers for the syntax defined in RFC2821 and 2822

  • funcmp 1.0. Peter Simons. funcmp: Functional MetaPost is a Haskell frontend to the MetaPost language

  • cabal-rpm 0.3.1. Bryan OSullivan. cabal-rpm: This package turns Haskell Cabal source packages into source and binary RPM packages.

  • Finance-Quote-Yahoo 0.3. Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com

  • xmonad 0.3. Spencer Janssen. xmonad: a minimalist tiling window manager for X

  • hint 0.1. Daniel Gorin. hint: an interpreter monad for Haskell expressions based on ghc-api

  • ipprint 0.2. Gleb Alexeyev. ipprint: Tiny helper for pretty-printing values in ghci console

  • pandoc 0.44. John MacFarlane. pandoc: Conversion between markup formats

  • X11-extras 0.3. Spencer Janssen. X11-extras: Missing bindings to the X11 graphics library

  • dsp 0.2. Matthew Donadio. dsp: Digital Signal Processing, Fourier Transform, Filter design, Frequency estimation, Interpolation, Linear Algebra, Polynomials

  • c2hs 0.15.0. Manuel Chakravarty. c2hs: C->Haskell assists in the development of Haskell bindings to C libraries.

  • regex-base 0.92. Chris Kuklewicz. regex-base: Interface API for regex-posix,pcre,parsec,tdfa,dfa

  • soegtk 0.9.12.2. Duncan Coutts. soegtk: SOE api for gtk2hs

  • hsns 0.5.3. Austin Seipp. hsns: a miniature network sniffer

  • anydbm 1.0.4. John Goerzen. anydbm: Interface for DBM-like database systems

  • suffixtree 0.2.1. Bryan O'Sullivan suffixtree: An efficient, lazy suffix tree implementation.

Discussion

A regressive view of support for imperative programming in Haskell. Paul Hudak sparked an interesting thread about the effect on the language of rich support for imperative programming.

Conference roundup

Jobs

A top tier Investment bank is looking for a Haskell developer. Kyle McBeath announced that there is a available a permanent position in London, joining a cross asset team. You will be able to use Haskell commercially everyday, be generously compensated and be on the forefront of technology in banking. This is a great opportunity for PhD students or above with proven experience of Haskell programming.

Postdoctoral Fellowship in Functional Programming. Graham Hutton announced that applications are invited for a 3-year postdoctoral research fellowship in functional programming, to work on the EPSRC-funded project 'Reasoning About Exceptions and Interrupts'.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • nomeata: Haskell is basically Swiss: Small, Efficient, and it is fun to explore the higher parts.
  • Tom Moertel: In the not-too-distant future, perhaps, we might look back in amazement at the days when important security properties were neither free nor guaranteed but expensive and uncertain, underwritten only by the heroic efforts of individual programmers, struggling against impossible odds to achieve inhuman perfection.
  • Adam Turoff: In any case, Simon Peyton Jones is right -- the way forward involves functional programming, whether it means choosing a language like Haskell, or integrating ideas from Haskell into your language of choice.
  • bootslack: Once, around the time of the discovery of fire, there was a large population of people that thought mastering fire would be too difficult so they didn't. The rest of us killed them, cooked them and ate them.

Code Watch

Notable new features and bug fixes to the Haskell compilers.

Thu Sep 6 09:19:48 PDT 2007. Norman Ramsey . massive changes to add a 'zipper' representation of C--

Tue Aug 14 03:36:23 PDT 2007. Ben Lippmeier. Add graph coloring register allocator. Refactored linear allocator into separate liveness annotation and allocation stages. Added graph coloring allocator, use -fregs-graph to enable. New dump flags are -ddump-asm-native -- output of cmm -> native transform. -ddump-asm-liveness -- code annotated with register liveness info -ddump-asm-coalesce -- output of register move coalescing (this is a separate pass when using the coloring allocator) (this could change in the future) -ddump-asm-regalloc -- code after register allocation -ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator -ddump-asm-conflicts -- a global register liveness graph in graphviz format The new register allocator will allocate some registers, but it's not quite ready for prime-time yet. The spill code generator needs some work.

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 cse.unsw.edu.au. The darcs repository is available at darcs get http://www.cse.unsw.edu.au/~dons/code/hwn

Haskell Weekly News: August 07, 2007

Submitted by dons on Tue, 08/07/2007 - 3:56am.

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

This issue marks the second anniversary of the Haskell (not quite) Weekly News. Thanks to the Haskell community for support, content and for reading over the last two years!

Announcements

OSCON Haskell Tutorial. Simon Peyton-Jones Appeared at the O'Reilly Open Source Convention (OSCON) in Portland, delivering a range of talks, including A Taste of Haskell, A Keynote on Functional Languages, Nested Data Parallelism and Transactional Memory for Concurrent Programming. Videos are available for most of these talks: A Taste of Haskell: Part 1, A Taste of Haskell: Part 2, slides for A Taste of Haskell, Transactional Memory for Concurrent Programming and the NDP talk at the London Hugs meeting.

hpodder 1.0. John Goerzen announced version 1.0.0 of hpodder, the command-line podcatcher (podcast downloader) that just happens to be written in everyone's favorite language. You can get it here. Version 1.0.0 sports a new mechanism for detecting and disabling feeds or episodes that repeatedly result in errors, updates to the Sqlite database schema, and several bugfixes.

encoding-0.1. Henning Günther announced the release of 'encoding', a Haskell library to cope with many character encodings found on modern computers. At the moment it supports (much more is planned): ASCII, UTF-8, -16, -32, ISO 8859-* (alias latin-*), CP125* (windows codepages), KOI8-R, Bootstring (base for punycode)

Dimensional 0.6: Statically checked physical dimensions. Björn Buckwalter announced a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities/units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units.

Hackage

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

Conference roundup

OSCON. Simon Peyton-Jones gave a series of popular talks about Haskell and functional programming at OSCON, in Portland. Below are collected just some of the posts about Haskell at OSCON.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • schluehk: ... Haskell taking over the world and troubled parents ask why their kids have turned into math hippies talking about nothing but love and abstract algebra...
  • JohnGoerzen: Haskell manipulates functions with the same ease that Perl manipulates strings
  • (anonymous Russian blogger): Glory to Simons! Glory to Swedish professors!
  • Laurent Sansonetti: I appreciated so much the Haskell talks that I am now learning the language.
  • dcoutts: Apparently that's only 200x faster than the faster of two common python serialisation libs, so we've got some way to go yet.
  • slava: [on Isabelle for web frameworks] IM IN UR WEB SITEZ, CODING PROVABLY-CORRECT BLINK TAG!!
  • gimboland: At present i'd say 'tinkering with a nuclear bomb' is approximately where i am with monads...
  • jcreigh: Could not find instance Ord for type ProgrammingLanguage
  • kowey: i suspect we're one of the rare wikibooks to use higher order templates
  • monochrom: 'm a -> (a -> m b) -> m b' is much more to the point than 'mumble computation mumble computation mumble computation mumble'
  • roconnor: damn it, Haskell pseudo code is indistinguishable from actual code
  • slava: Because top enterprise industry analysts recommend Because top enterprise industry analysts recommend that managers need to focus on Agile methodologies, SOA, B2B and Yoneda's lemma in today's rich internet application-driven environment. Don't get left behind by the AJAX craze by missing out on call center outsourcing and Yoneda's lemma!

Code Watch

Notable new features and bug fixes to the Haskell compilers.

Fri Jul 27 03:41:57 PDT 2007. Simon Marlow. Pointer Tagging. This patch implements pointer tagging as per our ICFP'07 paper 'Faster laziness using dynamic pointer tagging'. It improves performance by 10-15% for most workloads, including GHC itself. The original patches were by Alexey Rodriguez Yakushev, with additions and improvements by me. I've re-recorded the development as a single patch. The basic idea is this: we use the low 2 bits of a pointer to a heap object (3 bits on a 64-bit architecture) to encode some information about the object pointed to. For a constructor, we encode the 'tag' of the constructor (e.g. True vs. False), for a function closure its arity. This enables some decisions to be made without dereferencing the pointer, which speeds up some common operations. In particular it enables us to avoid costly indirect jumps in many cases. More information in the commentary.

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

Haskell Weekly News: July 23, 2007

Submitted by dons on Sun, 07/22/2007 - 10:12pm.

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

This week, the HWN rises zombie-like from its repository, as your friendly HWN editor tries to get his PhD finished. This bumper issue is filled out with 100 new Haskell blog articles and dozens of new libraries!

Announcements

Learn Haskell in 10 minutes. Chris Smith prepared a new tutorial on the basics of Haskell

Haskell Program Coverage 0.4. Andy Gill announced release 0.4 of Hpc, a tool for Haskell developers. Hpc is a tool-kit to record and display Haskell Program Coverage. Hpc includes tools that instrument Haskell programs to record program coverage, run instrumented programs, and display the coverage information obtained.

Uniplate 1.0. Neil Mitchell announced Uniplate (formerly known as Play), a library for boilerplate removal requiring only Haskell 98 (for normal use) and optionally multi-parameter type classes (for more advanced features).

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

Catch. Neil Mitchell announced a pattern-match checker for Haskell, named Catch. Do you sometimes encounter the dreaded 'pattern match failure: head' message? Do you have incomplete patterns which sometimes fail? Do you have incomplete patterns which you know don't fail, but still get compiler warnings about them? Would you like to statically ensure the absence of all calls to error? This is what Catch helps ... catch!

Haskell Communities and Activities Report. Andres Loeh announced that the Haskell Communities and Activities Report is now available, covering the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell.

The Reduceron. Matthew Naylor announced the Reduceron, a processor for executing Haskell programs on FPGA with the aim of exploring how custom architectural features can improve the speed in which Haskell functions are evaluated. Being described entirely in Haskell (using Lava), the Reduceron also serves as an interesting application of functional languages to the design of complex control circuits such as processors.

Data.Derive. Neil Mitchell announced Data.Derive, a library and a tool for deriving instances for Haskell programs. It is designed to work with custom derivations, SYB and Template Haskell mechanisms. The tool requires GHC, but the generated code is portable to all compilers. We see this tool as a competitor to DrIFT.

Piffle, a packet filter language. Jaap Weel announced Piffle, a compiler for a packet filter language in Haskell: a good example of how Haskell can be used in an application domain (low level computer networking) where people tend to use C for everything, including writing compilers.

Towards a Programming Language Nirvana. Simon Peyton-Jones appears on video, talking about the Haskell path to programming language Nirvana

Yi 0.2. Jean-Philippe Bernardy announced the 0.2.0 release of the Yi editor. Yi is a text editor written and extensible in Haskell. The goal of Yi is to provide a flexible, powerful and correct editor core dynamically scriptable in Haskell. Yi si also a Haskell interpreter, very much like emacs is a Lisp interpreter, this makes really easy to dynamically hack, experiment and modify Yi. All tools and goodies written in haskell are also readily available from the editor. This is implemented by binding to the GHC API.

Foreign.AppleScript. Wouter Swierstra announced a library for compiling and executing AppleScript from Haskell. AppleScript is a scripting language available on all modern Apple computers. It can be used to script most applications on running on MacOS X.

Asterisk Gateway Interface. Jeremy Shaw uploaded a simple AGI interface to hackage. For more about Asterix, see here.

Harpy. Dirk Kleeblatt announced Harpy, a library for run-time code generation of x86 machine code. It provides not only a low level interface to code generation operations, but also a convenient domain specific language for machine code fragments, a collection of code generation combinators and a disassembler. Lennart Augustsson has written a series of articles demonstrating its use for fast EDSLs.

Yaml Reference. Gaal Yahas announced a Haskell (Cabal) package containing the YAML spec productions wrapped in Haskell magic to convert them to an executable parser. The parser is streaming. It isn't intended to serve as a basis for a YAML tool chain; instead it is meant to serve as a reference implementation of the spec.

Haskell'

This section covers the Haskell' standardisation process.

Libraries

This week's proposals and extensions to the standard libraries.

Hackage

This week's new libraries in the Hackage library database.
  • HsOpenSSL-0.1. Masatake Daimon HsOpenSSL 0.1, OpenSSL binding for Haskell

  • Emping-0.3. Hans Van Thiel Emping derives heuristic rules from nominal data

  • parsely-0.1. Samuel Bronson parsely, Typeclasses for parsing monads, and some instances

  • sessions-2007.7.15. Matthew Sackman sessions, Session Types for Haskell

  • CC-delcont-0.1. Dan Doel CC-delcont1, An implementation of multi-prompt delimited continuations

  • gd-3000.3.0. Bjorn Bringert gd, A binding to the GD graphics library

  • StrategyLib-4.0.0.0. Samuel Bronson StrategyLib, Strafunski's StrategyLib

  • ports-0.4.3.2. Don Stewart ports, concurrent and distributed Haskell programming in the IO monad without relying on mutable variables.

  • Finance-Quote-Yahoo-0.1. Brad Clawsie Yahoo-0.1, Obtain quote data from finance.yahoo.com

  • logict-0.2. Dan Doel LogicT, A continuation-based, backtracking, logic programming monad.

  • utf8-string-0.1. Eric Mertens utf8-string, Support for reading and writing UTF8 Strings

  • type-int-0.4. Edward Kmett type-int, Type level 2s- and 16s- complement Integers (positive and negative), Booleans, Ord and Eq

  • cgi-3001.1.5. BjornBringert cgi-3001, a Haskell library for writing CGI programs

  • xmobar-0.6. AndreaRossato xmobar, Xmobar is a minimal status bar for the XMonad Window Manager

  • monad-param-0.0.2. EdwardKmett monad-param, parameterized monads

  • dfsbuild-1.0.1. JohnGoerzen dfsbuild, dfsbuild is the program used to create the Debian From Scratch CD image.

Conference roundup

AngloHaskell. is coming up in Cambridge, August 10-11

Haskell Hackathon 07 II. Hac07 coming up in Freiburg, Oct 5-7

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Smith's Law: Any sufficiently large test suite for a program written in a dynamic language will contain an ad-hoc, informally-specified, bug-ridden, slow, patchy implementation of half of the Haskell type system
  • pshaw: I think the key hook that allowed me to pass interview #2 was that I put the word 'Haskell' on my resume.
  • monochrom: Fear leads to uncertainty. Uncertainty leads to doubt. Doubt leads to theorem proving.
  • Adam Turoff: Let me start by being perfectly clear: if you are a professional programmer, then Haskell is in your future.
  • Apfelmus: In the end, I think that strong types is only one thing that makes Haskell programs work after compilation. The other ones are higher-order functions and *purity*. No type system can achieve what purity offers.

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

Sequence Looking For New Home

Submitted by jgoerzen on Wed, 07/18/2007 - 5:36am.

Hi everyone,

I've been hosting sequence.complete.org on my own server for awhile, but have found that I haven't had time to maintain it lately. I'm looking for someone else that might be willing/able to host and maintain it.

It's using Drupal on MySQL, though a fairly old version of Drupal at the moment.

One result of my lack of time is that there has been a problem with spam on the Sequence. I've had to disable new user account requests due to the hundreds of emails to bogus addresses this is generating (and a few to valid addresses that spammers use).

If you want an account, or would be interested in taking over the site, please send a note to me... jgoerzen on complete ,dot, org.

-- John

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.

Announcements

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'.

Haskell'

This section covers the Haskell' standardisation process.

Hackage

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

Discussion

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

Haskell Weekly News: April 27, 2007

Submitted by dons on Thu, 04/26/2007 - 10:52pm.

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

The last week was a very exciting week for the Haskell community, with a new GHC release, the first release of Xmonad, a window manager written in Haskell, and DisTract, a new distributed bug tracker, written in Haskell. A number of new Haskell jobs were announced, and several new user groups were formed!

Announcements

GHC 6.6.1. Ian Lynagh announced a new patchlevel release of GHC. This release contains a significant number of bugfixes relative to 6.6, so we recommend upgrading. Release notes are here. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces.

Xmonad 0.1. Spencer Janssen announced the inaugural release of Xmonad. Xmonad is a minimalist tiling window manager for X, written in Haskell. Windows are managed using automatic layout algorithms, which can be dynamically reconfigured. At any time windows are arranged so as to maximise the use of screen real estate. All features of the window manager are accessible purely from the keyboard: a mouse is entirely optional. Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files.

DisTract: Distributed Bug Tracker implemented in Haskell. Matthew Sackman announced DisTract, a Distributed Bug Tracker. We're all now familiar with working with distributed software control systems, such as Monotone, Git, Darcs, Mercurial and others, but bug trackers still seem to be fully stuck in the centralised model: Bugzilla and Trac both have single centralised servers. This is clearly wrong, as if you're able to work on the Train, off the network and still perform local commits of code then surely you should also be able to locally close bugs too. DisTract allows you to manage bugs in a distributed manner through your web-browser. The distribution is achieved by making use of a distributed software control system, Monotone. Thus Monotone is used to move files across the network, perform merging operations and track the development of every bug. Finally, the glue in the middle that generates the HTML summaries and modifies the bugs is written in Haskell.

IOSpec 0.1. Wouter Swierstra announced the first release of the Test.IOSpec library, that provides a pure specification of some functions in the IO monad. This may be of interest to anyone who wants to debug, reason about, analyse, or test impure code. Essentially, by importing libraries from IOSpec you can the same code you would normally write in the IO monad. Once you're satisfied that your functions are reasonably well-behaved, you can remove the Test.IOSpec import and replace it with the 'real' functions instead.

wl-pprint-1.0: Wadler/Leijen pretty printer. Stefan O'Rear announced wl-pprint-1.0, the classic Wadler / Leijen pretty printing combinators, now in 100% easier to use Cabalised form! PPrint is an implementation of the pretty printing combinators described by Philip Wadler (1997). In their bare essence, the combinators of Wadler are not expressive enough to describe some commonly occurring layouts. The PPrint library adds new primitives to describe these layouts and works well in practice.

London Haskell User Group. Neil Bartlett announced the first meeting of the London Haskell User Group on Wednesday 23rd May from 6:30PM. The meeting will be held at City University's main campus in central London, and Simon Peyton Jones will be coming to give a talk.

New York Functional Programmers Network. Howard Mansell announced a New York area-based network for Haskell (and functional) programmers. The idea is to have a regular meeting through which functional programmers can meet to discuss experiences, get and give information, find jobs.

Data.Proposition 0.1. Neil Mitchell announced the release of Data.Proposition, a library that handles propositions, logical formulae consisting of literals without quantification. It automatically simplifies a proposition as it is constructed using simple rules provided by the programmer. Implementations of propositions in terms of an abstract syntax tree and as a Binary Decision Diagram (BDD) are provided. A standard interface is provided for all propositions.

Book reviews for the Journal of Functional Programming. Simon Thompson sought interested contributors for book reivews for the Journal of Functional Programming. There is a list of books currently available for review.

Reminder: HCAR May 2007. Andres Loeh reminded us that the deadline for the May 2007 edition of the Haskell Communities and Activities Report is only a few days away -- but this is still enough time to make sure that the report contains a section on your project, on the interesting stuff that you've been doing; using or affecting Haskell in some way.

Template 0.1: Simple string substitution. Johan Tibell announced a simple string substitution library that supports substitution ala Perl or Python.

hpaste for emacs. David House announced hpaste.el, an Emacs Lisp library that integrates hpaste, the Haskell pastebin, into Emacs. It provides two functions, hpaste-paste-region and hpaste-paste-buffer, which send the region or buffer to the hpaste server as required.

Haskell'

This section covers the Haskell' standardisation process.

Libraries

This week's proposals and extensions to the standard libraries.

Hackage

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

Discussion

GHC Release Plans. Simon Marlow initiated a discussion on possibe release timelines for upcoming GHC versions.

More inlining. Duncan Coutts asked about more fine grained control over inlining in GHC, to ease term rewriting with RULES

Haskell version of Norvig's Python Spelling Corrector. Pete Kazmier spawned a long thread covering various implementations of spelling correctors in Haskell

Jobs

Quantitative Functional Programmer. Credit Suisse. The Global Modelling and Analytics Group (GMAG) is responsible for producing state-of-the-art pricing, trading and hedging models for Credit Suisse. These models are used across a range of businesses in the Fixed Income and Equity Divisions. The groups mandate covers all major asset classes including Credit Derivatives, Commodities, Emerging Markets, Equity Derivatives and Convertibles, Exotics, Foreign Exchange, Fund Linked Products, Interest Rate Products and Mortgage Derivatives. GMAG operates globally with 85 members located in New York, London, Hong Kong and Tokyo. We are currently building a Domain Specific Language (embedded in Haskell) that will be used within GMAG. We require intelligent, motivated people to develop and extend this language. These individuals will also work with modellers to aid them in effectively applying these new tools.

Haskell programmer positions. HAppS. HAppS LLC has part-time and full-time positions open for Haskell programmers to: improve the open source Haskell codebase at HAppS.org; implement infrastructure to make it work well in Amazon S3/EC2 environments; make http://pass.net reliable enough to be used by live apps; build the mass market apps we want to run on top of the HAppS/Pass.net platform. We are looking for people who: have substantial experience programming Haskell; have experience building Internet apps (not necessarily in Haskell but would be good), and live in any of these places: the Internet, New York, San Francisco Los Angeles.

Vacancy for a PhD student. Johan Jeuring announced a vacancy for a PhD student in the Strategy Feedback project. Knowledge of Haskell is a big plus; implementation of most of the tools will be done in Haskell. Length: 1+3 years, Open University the Netherlands, Location: Heerlen.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • apfelmus: Programming in Haskell is like dual-wielding two light sabers whereas programming in imperative languages is like being equipped with a blunt kitchen knife.
  • mwc: C++ is multiparadigm in the same way a dog with 4 table legs nailed onto it is an octopus
  • ptolomy: Sometimes Haskell feels like a personal trainer for proper program construction. You half-ass something, and the compiler doesn't let you get away with it and won't let you move on until you do it right.
  • dons: I wish you success and may your lambdas always beta reduce
  • quicksilver: May your years be long and your type inference algorithms sound.
  • inverselimit: So I tried as my first project in Haskell to write something that decomposes modules of polynomials using Schur-Weyl duality. This turned out to be a little tricky without being comfortable with the syntax
  • jcreigh: Could not find instance Ord for type ProgrammingLanguage

Code Watch

Apr 19 07:23:58 PDT 2007. Simon Marlow. More debugger improvements. :list shows the code around the current breakpoint. Also it highlights the current expression in bold (the bold/unbold codes are hardwired to the ANSI codes right now, I'll provide a way to change them later). :set stop cmd' causes cmd to be run each time we stop at a breakpoint. In particular, :set stop :list is particularly useful.

Wed Apr 25 03:18:32 PDT 2007. simonpj. Add -fwarn-monomorphism-restriction (on by default) to warn when the MR is used. Users often trip up on the Dreaded Monomorphism Restriction. This warning flag tells you when the MR springs into action. Currently it's on by default, but we could change that.

Thu Apr 26 02:37:19 PDT 2007. Pepe Iborra. New section on debugging lambdas in the ghci user guide

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