HaskellDB
HaskellDB is a combinator library for expressing queries and other operations on relational databases in a type safe and declarative way in the programming language Haskell. All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.
It was originally written by Daan Leijen and its design 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 (http://www.usenix.org/events/dsl99/). That version of HaskellDB was published in 1999 and has been available from http://www.haskell.org/haskellDB/ since then.
The original version implements the entire HaskellDB combinator library, but has some practical drawbacks. It requires certain extensions (most notably the typed records extensions) which, in the form that are used by HaskellDB, are only available in antiquated versions of the Hugs interpreter. Furthermore, the original HaskellDB only supports a Windows-specific ADO-based database backend.
The new version of HaskellDB was produced as a student project at Chalmers in a project during our third year. The group consisted of Conny Andersson, Martin Andersson, Mary Bergman, Björn Bringert, Anders Höckersten, Torbjörn Martin and me.
More information about HaskellDB can be found at its new homepage at sourceforge: http://haskelldb.sourceforge.net/
Paper
Student Paper: HaskellDB Improved [abstract, paper (pdf), paper (ps)], Björn Bringert, Anders Höckersten, Conny Andersson, Martin Andersson, Mary Bergman, Victor Blomqvist and Torbjörn Martin. In Proceedings of the ACM SIGPLAN 2004 Haskell Workshop, Snowbird, Utah, USA, September 22, 2004.