Savary Belanger, Olivier, et al. “Programming Type-Safe Transformations Using Higher-Order Abstract Syntax”. Journal of Formalized Reasoning, vol. 8, no. 1, Jan. 2015, pp. 49-91, doi:10.6092/issn.1972-5787/5122.