A Scala DSL for talking with databases with minimum verbosity and maximum type safety