Using circular programs for higher-order syntax: Functional pearl
Paper i proceeding, 2013
This pearl presents a novel technique for constructing a firstorder 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 firstorder syntax when processing or transforming programs.