(Combining) Syntactic and Semantic BidirectionalizationPrototype implementation

This tool allows you to experiment with the bidirectionalization methods described in the following papers:

(For a stand-alone version on command line, which is also able to show intermediate steps in the transformations, see here. For the technique from POPL’09 alone, a separate web interface offering more features is also available.)

Please enter the view function. The first function defined will be assumed to be your view function. You can use the first-order functional language from the ICFP’07 paper, in Haskell syntax. The view function must have type [a] -> [a]. You can also load some predefined examples.

init tail sieve halve rev

You can try all three bidirectionalization methods.

Syntactic bidir. (ICFP’07) Semantic bidir. (POPL’09) Combined bidir. (ICFP’10)

The source code of this application and the underlying library can be found on hackage. The code for the web interface is based on the demo interface from “Bidirectionalization for free!”

© 2010 Kazutaka Matsuda, Joachim Breitner <mail@joachim-breitner.de>