I don't see it. Hamlet et al are similar to other Haskell web template system, which means similar to most other web template systems, except with better typing. The result of compiling a template isn't a type, nor is it a function of any kind - it's just data. The type of that data varies a little depending on the content, but can be identical for different templates, so there's no unique type for a template as there is with Cheetah. While the static typing one finds in haskell web template systems is better than the dynamic typing in Cheetah and other templates based on dynamically typed languages, that's inside the templates. The objects generated by the templates don't do much of anything to let the application author leverage the type system, which is what makes Cheetah stand out from other web template systems.