[Haskell-cafe] Using Template Haskell to make type-safe database access

Wouter Swierstra wss at Cs.Nott.AC.UK
Mon May 5 10:49:48 EDT 2008


Hi Mads,

> I was wondering if anybody had experimented with using Template  
> Haskell
> (TH) and ordinary SQL to make type-safe database access?

I know HaskellDB, for example, does something quite similar. There's a  
preprocessor that generates a Haskell file with a Haskell  
representation of the types of the database's tables. You could of  
course replace this with a TH function. There are two very nice papers  
about the design of HaskellDB:

http://research.microsoft.com/users/daan/download/papers/dsec.ps

http://haskelldb.sourceforge.net/haskelldb.pdf

I think there may a bit of problem with the approach you suggest: as  
the type returned by the query is computed by the SQL server (if I  
understand you correctly), it's very hard to do anything with the  
result of the query - the Haskell compiler has no idea what type the  
result has, so you can't do anything with it. I think it makes much  
more sense to bookkeep type information on the Haskell side.

Hope this helps,

   Wouter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20080505/0996682a/attachment.htm


More information about the Haskell-Cafe mailing list