Hello Ellery,
Generally I think D's CT capabilities have a way to go yet before this would be worth tackling. E.g. how do you build a parse tree if pointers and classes aren't allowed in CT code?
You use the type system. I can say from experience that (memory issues aside) it works. You can even do duck typing "Template Foo works on anything that defines a Bar and a Baz."
-- ... <IXOYE><