On Fri, Sep 7, 2012 at 8:48 AM, Ian Lynagh <ian@well-typed.com> wrote:
I think it would be best to use lowest-common-denominator SQL, so that
one can set up a Hackage 2 instance with postgreq, mysql, sqlite, or
another DB backend.


While I think that's a laudable goal in theory,  unfortunately the only database-independent client interface Haskell has at the moment is HDBC,  which is rather painful to use compared to mysql-simple, pgsql-simple, postgresql-simple,  and sqlite-simple.    And unfortunately,  there are also some incompatibilities between the *-simples, though perhaps one could, with great care,  write code that works on any of them by changing which module is imported.

The other issue is that least-common-denominator sql is also pretty restrictive,  and that in a great many of my own projects,  I've found database-specific functionality compelling,  often allowing me to implement things much more efficiently than otherwise,  either in terms of programming time or runtime or both.

Best,
Leon