Comparing Snap's and Yesod's Template Languages Heist and Hamlet - and HSP
Both template languages let programmers write markup directly in a markup language rather than generating it from within Haskell. Compared with static HMTL, template languages support substitution to dynamically determine parts of the content of the generated page.
[Heist] and [Hamlet] support different constructs to generate content dynamically. They also differ regarding their syntax for static content.