All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.

3 Status

HaskellDB, pulled from its repository, builds on GHC 6.10.1.

Some of HaskellDB HDBC backends (ODBC and SQLite3 to be exact) have been updated to work with recent HDBC (2.1 as of this writing).

This library is in need of some tender love and care. Drop a mail at HaskellDB mailing list if you're interested in improving code or documentation.

4 Homes

4.1 Current Version

The current repository is stored at code.haskell.org.
There was a complaint on Haskell-cafe that HaskellDB does not compile with GHC 6.10.1. This is only partially true: one can darcs get HaskellDB repository and build it themselves.

It makes possible to use Haskell's typecheck system for a type-safe, declarative database management -- a combinator library. It can prevent the user even from using multiple labels in the same record, but the price for this: it needs a special extension of Haskell called Trex (providing extensible records).

HaskellDB was originally developed by Daan Leijen, and is described in the paper Domain Specific Embedded Compilers, Daan Leijen and Erik Meijer. 2nd USENIX Conference on Domain-Specific Languages (DSL), Austin, USA, October 1999.

5 Other materials

5.1 How to use

HaskellDB needs database schema expressed in Haskell to operate (not only a schema, but also some boilerplate, too: fortunately, it can be derived automagically). Furthermore, HaskellDB description and real database schema should be kept in sync.

Here's an example of creating both database tables and appropriate Haskell boilerplate out of database specification.