When comparing Yesod vs Snap, the Slant community recommends Yesod for most people. In the question“What are the best Haskell web frameworks for building RESTful web services?” Yesod is ranked 1st while Snap is ranked 7th. The most important reason people chose Yesod is:
While not required, Yesod offers templating through a Shakespearean family of languages to produce page code.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Offers templating for type-safe, well-formed content
While not required, Yesod offers templating through a Shakespearean family of languages to produce page code.
Pro Uses type-safe URLs
Ensures that data provided by the URL is type-safe. This means that data in the URL has a definitive type.
Pro Can be used without knowing much Haskell
While Yesod is written in Haskell, developers can achieve basic functionality without much investment in the language.
Pro Provides modules for changeable functionality
Snap provides "snaplets". These are self-contained modules of code that provide additional functionality without muddling the core library. Having these resources saves time when developing code.
Cons
Con Is hard to customize
Learning how Yesod works internally is hard. It is a large framework with complicated components. Finding the appropriate code and understanding how it contributes to the framework is difficult, meaning developers will struggle.
Con Too much template haskell
You actually want to code in haskell and not some DSL with "magic" hidden under the bonnet.
Con Outdated documentation
The comprehensive Snap documentation is currently outdated (last activity appears to have been 2013), though Snap itself is under active development. Note that this primarily affects tutorials and guides; the API documentation is generated automatically and remains current.