Designing a Haskell database interface