A project to learn meta-programming.