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

Announcements

HDBC v2.0 now available. John Goerzen announced that HDBC v2.0 is now available. Simultaneously, HDBC-sqlite3, HDBC-postgresql, and HDBC-odbc v2.0 have also been uploaded to Hackage. A guide to new features and migration can be found here.

Extensible and Modular Generics for the Masses: emgm-0.2. Sean Leather announced the second major release of Extensible and Modular Generics for the Masses (EMGM), a library for generic programming in Haskell using type classes and a sum-of-products view. Improvements over emgm-0.1 include type representation derivation using Template Haskell, documentation improvements, a bimap function, and more.

incremental-sat-solver. Sebastian Fischer announced the incremental-sat-solver library, which provides an implementation of the Davis-Putnam-Logemann-Loveland algorithm for the Boolean satisfiability problem. It not only allows solving Boolean formulas in one go, but also adding constraints and query bindings of variables incrementally.

data-spacepart - space partitioning data structure[s] (initial release). Corey O'Connor announced the data-spacepart package, the goal of which is to be a collection of space partitioning data structures. Currently, there is only a simple quadtree implementation.

Wired 0.2. Emil Axelsson announced a new release of Wired. The most important news in this release is that it now contains a 45nm cell library, which means that you can use Wired to create and analyze modern VLSI designs today!

CFP Haskell Symposium 2009. Stephanie Weirich announced a call for papers for the 2009 Haskell Symposium in Edinburgh, Scotland. The deadline for submissions is May 8.

testpack (first release). John Goerzen announced the release of testpack, a collection of a few utilities for tests: some tools to convert QuickCheck properties into HUnit test cases, and various shortcuts and tools to increase verbosity while running tests in both QuickCheck and HUnit.

convertible (first release). John Goerzen announced a new package, convertible. At its heart, it's a very simple typeclass that's designed to enable a reasonable default conversion between two different types without having to remember a bunch of functions. The return type from this conversion is "Either ConvertError a", and conversions are expected to do sanity checking (such as bounds checking when converting to types like Int), so as to produce neither garbage nor exceptions as part of the conversion process. The package also includes instances of the Convertible typeclass for common type conversions. working with numeric types as well as dates and times. Notably, it has code to convert between System.Time types and their Data.Time siblings, and vice versa, a capability I found annoyingly lacking in the standard library.

Progress with IDE. Juergen Nicklisch-Franken announced that the Leksah 0.4.0 pre-release is now available. Current features include a Haskell customized editor with candy, project management support based on Cabal, a visual editor for Cabal files, navigation aids, a module browser, session support, and more.

Hayoo! beta 0.3. Timo B. announced the next beta version 0.3 of Hayoo!, the Haskell API search engine with find-as-you-type and suggestions. Hayoo! now works even if your browser does not support JavaScript.

DecisionTree 0.0. Adrian Neumann announced the DecisionTree package, which provides an implementation of the ID3 algorithm and can be used to classify data with discrete valued attributes.

orchid-0.0.7. Sebastiaan Visser announced a new release of Orchid, just another Haskell Wiki. This release features a number of improvements, including a filestore backend, searching, deleting and renaming support, and more. Check out the demo.

gitit 0.5. John MacFarlane announced the latest release of Gitit, the multitalented distributed wiki written in Haskell. This release uses the filestore library and hence also supports a darcs backend, and also features optimizations, better search, better diffs, and more. You can check out a running example.

filestore 0.1. Gwern Branwen announced filestore 0.1, which provides a uniform, abstract, generic interface for storing versioned files on disk. It allows calling programs to use generic commands to store strings or binary data and perform various queries, such as 'what files are in this repository?' or 'what were the contents of this file at revision XXXXXXX?' or 'give me a diff of this file between revision XXXXXXX and revision YYYYYYY.' Because the interface is abstract, the calling program is insulated from the messy details of the backend (which might be a VCS or a database). Darcs and Git are fully supported. There are plans for a SQLite backend.

Scurry :: A cross platform (if you put your mind to it) P2P VPN. John Van Enk announced the release of Scurry, a P2P VPN application written in Haskell (and a little C).

Discussion

Why binding to existing widget toolkits doesn't make any sense. Achim Schneider began an interesting discussion on the proper approach to GUI toolkits in Haskell.

Laws and partial values. Henning Thielemann began a long thread on the semantics of laws (such as the monoid laws).

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

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.

To help create new editions of this newsletter, please see the information on how to contribute. Send stories to byorgey at cis dot upenn dot edu. The darcs repository is available at darcs get http://code.haskell.org/~byorgey/code/hwn/ .