bff: Bidirectionalization for Free! (POPL'09)

[ data, library, public-domain ] [ Propose Tags ]

This is an implementation of the ideas presented in "Bidirectionalization for Free!" (paper at POPL'09) by Janis Voigtlaender.

It also includes an automatic deriver for the Zippable type class.

Using the cabal flag "binaries" will enable the creation of a web frontend to bff, in the form of a CGI program. Make sure you understand the security implications before allowing untrusted access to the script.

Using the cabal flag "stats" will generate programs that collect performance statistics about bff and print them as a table.

Using the cabal flag "render" will generate a program that renders collected performance statistics as PDF files.

You may also want to check out later work combining the implementation here with other methods:


  • Data
    • Data.Bff
    • Data.IntMapEq
    • Data.IntMapOrd
    • Data.Zippable
  • SimpleTree


Automatic Flags

Build the binaries bff-shell and bff-cgi


Build the stats-generating and -printing programs


Build the stats-rendering program


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1, 0.2, 0.3, 0.3.1,,
Dependencies base (>=2 && <5), benchpress (>=, bimap (>=0.2.3), category-extras (>=0.53.5), cgi, Chart (>=0.12), colour, containers, data-accessor, derive (==0.1.1), directory, haskell98, hint (>=0.3.2), mtl, template-haskell, unix, utf8-string, xhtml [details]
License LicenseRef-PublicDomain
Author Janis Voigtlaender, Joachim Breitner
Maintainer Janis Voigtlaender
Category Data
Uploaded by DanielSeidel at 2011-03-22T08:48:05Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables bff-stats-render, bff-stats-print, bff-stats, bff-cgi, bff-shell
Downloads 5068 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-10-27 [all 9 reports]