Functional metaprogramming. - Gareth Moffat Powell (1993)