
My uninformed take on this is that Yesod is a bit like Django, ~everything comes as default, and the packages have been chosen for you. Yesod/django holds your hand and tells you the right way to do x. Happstack on the other hand is like Pylons where you have the freedom to choose your db libraries/whatever you need. Pylons is also maybe bit more vanilla python without so much "sugaring" (I don't think the term applies well to python, but for yesod/happstack argument it does) I'm not saying that Yesod prevents you from choosing your own DB abstraction layer, I'm saying it comes with one. I think both approaches are good, and it depends on your requirements, which you should choose. On a side-note, both of their documentation is "great". They both seem a bit raw, especially yesod, but the content within already is excellent and provide great ideas. I've used Yesod's documentation to deepen my understanding on web technologies, type safety and enumerators. Happstack has taught me more concrete areas such as MonadPlus and Alternative (msum for routing <3).