
Hi, Артем — Some thoughts. (And in the interest of disclosure, I'm one of the D.I.Y. crowd.)
I tried HVAC, which doesn't build on GHC 6.10.1 (if somebody's interested, I'll post some compiler complaints). I really like its approach, though.
Try the compiler complaints on #haskell or take them straight to the HVAC maintainer/creator. FWIW, I only had to change the base version constraint in my .cabal files to get things building and working on 6.10.1.
Then I tried to DIY: wired Haskell to Lighty using FastCGI. This approach works, but leaves very much to desire: XHTML combinators don't really give you compile-time validation, so what is the point of writing it in code? I had thought I'd need some templating, so I tried HStringTemplate to find that it doesn't build on my GHC (BTW, this templating engine has some neat concepts, which I like :-)).
Are you looking for an XHTML library that's stricter in terms of compile-time validation? I agree that it can let you do silly things at present (e.g., <a><a><a>...</a></a></a>), but I've always found those things to be issues with underlying code (and thus separately testable/excludable).
I found out that WASH uses CGI, which is sooo retro. Is it just my misunderstanding, maybe?
The difference between FastCGI and CGI, from a practical point of view, is that the application process in a FastCGI application is long- lived while the application process in a CGI application lives only for the request.
There's also a question regarding which DBC library to use. Hackage has Takusen, HaskellDB, HDBC, HSQL. So which one?
I've had good luck with HDBC and SQLite3.
I'd be very glad if somebody gave an advice to a noob Haskell web programmer. :)
In realistic terms, there are only noob Haskell web programmers, but we're coming along as a community. You might find some interesting things in the FastCGI-based hpaste version: http://github.com/glguy/hpaste/tree/master BEst. -- Paul