
Anatomy of a Haskell-based Application - nicolast
http://abailly.github.io/posts/cm-arch-design.html
======
lambdasquirrel
I'm going to put it out there that this reflects badly on our community when
we dislike RDBMS "just because."

------
sdegutis
When I tried to write a Haskell app, one thing I learned quickly was that most
of the awesome Haskell features that are perfect for modeling a domain _in
Haskell_ were useless because the majority of my modeling needs to be done in
the database and merely wrapped with Haskell, rather than written entirely in
Haskell. That disappointed me a bit. But maybe I'm wrong, in fact I hope I was
wrong!

~~~
steven777400
Some frameworks provide automatically generated type-safe entities, query, and
update capabilites, such as the Yesod Persistent framework [0].

For a smaller but similarly safe approach, I reccomend Esqueleto.

[0]
[http://www.yesodweb.com/book/persistent](http://www.yesodweb.com/book/persistent)
[1]
[https://hackage.haskell.org/package/esqueleto](https://hackage.haskell.org/package/esqueleto)

~~~
xnyhps
To be precise, Esqueleto isn't a smaller alternative, it's a layer on top of
Persistent that gives you a typed DSL for SQL. It's been pretty nice when I
used it, most things that I wanted to do in SQL were easily expressed. Exotic
SQL functions that weren't available are easily imported in a type-safe way.

acid-state is a smaller, no-SQL alternative [1].

[1] [https://hackage.haskell.org/package/acid-
state](https://hackage.haskell.org/package/acid-state)

~~~
steven777400
Thank you. I was thinking of Persistent as part of a Yesod Web framework and
Esqueleto as something independent, which was not correct.

