Persistent allows us to choose among existing databases that are highly tuned
for different data storage use cases, interoperate with other programming
languages, and to use a safe and productive query interface, while still
keeping the type safety of Haskell datatypes.
Persistent follows the guiding principles of type safety and concise,
declarative syntax. Other nice features are database-independence, convenient
data modeling, and automatic database migrations.