Olivier Savary Bélanger, Stefan Monnier, Brigitte Pientka: Programming Type-Safe Transformations Using Higher-Order Abstract Syntax. CPP 2013: 243-258