Too Long; Didn't Read
As part of our <a href="https://www.mmhaskell.com/haskell-web" target="_blank">Haskell Web Series</a>, we examined the <a href="http://hackage.haskell.org/package/persistent" target="_blank">Persistent</a> and <a href="http://hackage.haskell.org/package/esqueleto" target="_blank">Esqueleto</a> libraries. The first of these allows you to create a database schema in a special syntax. You can then use Template Haskell to generate all the necessary Haskell data types and instances for your types. Even better, you can write Haskell code to query on these that resembles SQL. These queries are type-safe, which is awesome. However, the need to specify our schema with template Haskell presented some drawbacks. For instance, the code takes longer to compile and is less approachable for beginners.