
On Tue, Jan 08, 2008 at 02:43:08PM +0000, Jon Fairbairn wrote:
It contains a monadic combinator library that checks proper nesting of HTML tags at compile time. The library also has an unchecked version,
It's possible that I only tried the unchecked version: I just thought of an invalid example, read what documentation I could find and generated some invalid html.
That's an easy trap to fall into, especially because the author seems to use only unchecked combinators in examples ;-)
However, Thiemann's thesis says
The current library implements neither inclusions nor exceptions.
So I hope I might be forgiven if I overlooked a difference between the distribution and the thesis! Does the checked version now enforce appendix B and prevent <a> appearing anywhere within <a> and so on?
I am not familiar with the HTML standards enough to understand everything you say here, but I've just checked that you can't put <a> inside <a> using the checked combinators. But I can't say if it checks everything your library checks.
Another difference is that I haven't used any non-Haskell 98 constructs other than using Template Haskell to generate class declarations and instances (were one so inclined, one could get ghc to output the splices and [clean them up by hand to] produce an entirely H98 version).
I can't think of any non-haskell 98 extensions that were used in WASH/HTML, but I may be overlooking something. At least the interface of WASH.HTML.HTMLMonad98 looks quite standard. Best regards Tomasz