This isn't really a "virtual DOM" in any way, though. It only generates strings, which defeats the whole purpose of keeping a separate DOM around.
It would be more interesting if the code was tied with parenscript instead of generating the raw HTML directly. That way you could generate the Javascript needed to manipulate the real DOM. Otherwise, this isn't a virtual DOM, it's only a minimal template engine.
Keep on downvoting, friends; as long as it makes you feel better :)<p>Look, I'm sorry if I stepped on any ego toes; but I truly think most of the current practice is a mess of bad ideas and duct tape, and I have plenty of experience to back that up. Disagreeing is one thing, shooting messengers at any cost is counter-productive. I'm sharing ideas, you're arguing definitions.