Jonathan Turner
Generation of syntax + parser from the algebraic data type AST specification, and you can do "in the style of" type generation.