Language Design For Program Manipulation. - Eduardus A. T. Merks; J. Michael Dyck; Robert D. Cameron (IEEE Trans. Software Eng., 1992)