Agate –an Agda-to-Haskell compiler

Hiroyuki OZAKI, Makoto TAKEYAMA, Yoshiki KINOSHITA
2009 Konpyuta sofutowea  
We report some features of Agate, a compiler for the dependently typed functional language of the Agda proof-assistant. Agate was developed as an experimental platform for the practice of dependently typed programming and extends the Agda language with I/O facilities and calls to Haskell functions. The first feature is the use of Higher-Order Abstract Syntax to translate terms of the Agda language into untyped λ-calculus encoded in Haskell. The second feature is the application of the Haskell
more » ... ass mechanism to embed typed Haskell terms in the universal type for untyped λ-calculus. This approach makes Agate very lightweight. The performance of a number of codes generated by Agate is evaluated.
doi:10.11309/jssst.26.4_107 fatcat:5oqhuik5wvbq5m6miyupoh6lce