Welcome to issue 103 of HWN, a newsletter covering developments in the Haskell community.
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.
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).
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).
Sebastian Fischer: Using SmallCheck to Shatter an Audacious Claim.
Xmonad: Quad head xmonad.
Darcs: darcs weekly news #15.
Osfameron: More longest paths, and sick folds..
Eric Kow (kowey): haskell-ji.
Jeff Heard: Control.Monad.IfElse.
Conal Elliott: What is automatic differentiation, and why does it work?.
Luke Palmer: Fun with PiSigma.
Neil Mitchell: Small scripts with Haskell.
LHC Team: Release notes..
LHC Team: Thoughts on a new code generator.
Osfameron: There's the nub (snippet in Perl and Haskell).
Malcolm Wallace: codec implementations.
Sebastian Fischer: Fun with Infinite Global Constants. Just-in-time, memoized binomial coefficients.
Chris Done: Some libgd changes.
Luke Palmer: A world without orphans. Luke muses on the benefits to be gained by outlawing orphan instances.
Creighton Hogg: Fear of releasing code.
LHC Team: Thoughts on a new code generator.
Don Stewart (dons): What is Haskell good for?. Lots of things, if this tag cloud has anything to say about it.
Arch Haskell News: Haskell wiki stack in Arch.
Conal Elliott: Fostering creativity by relinquishing the obvious.
Arch Haskell News: Arch Haskell News: Jan 11 2009.
Dan Piponi (sigfpe): Fast incremental regular expression matching with monoids. A very cool article showing how to use fingertrees storing memoized automaton transition functions to do fast incremental regular expression matching (or, in general, fast incremental lexing).
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/