kirancodes.me
To Proof Maintenance & Beyond!

Using circular programs for higher-order syntax: functional pearl

Emil Axelsson, Koen Claessen

Abstract

This pearl presents a novel technique for constructing a first-order syntax tree directly from a higher-order interface. We exploit circular programming to generate names for new variables, resulting in a simple yet efficient method. Our motivating application is the design of embedded languages supporting variable binding, where it is convenient to use higher-order syntax when constructing programs, but first-order syntax when processing or transforming programs.

Related papers