Typed syntactic meta-programming

Dominique Devriese, Frank Piessens
2013 SIGPLAN notices  
We present a novel set of meta-programming primitives for use in a dependently-typed functional language. The types of our metaprograms provide strong and precise guarantees about their termination, correctness and completeness. Our system supports typesafe construction and analysis of terms, types and typing contexts. Unlike alternative approaches, they are written in the same style as normal programs and use the language's standard functional computational model. We formalise the new
more » ... ramming primitives, implement them as an extension of Agda, and provide evidence of usefulness by means of two compelling applications in the fields of datatype-generic programming and proof tactics.
doi:10.1145/2544174.2500575 fatcat:7bi6pljz3rcutnwdi2xnz6zrdi