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.

Versions [faq] 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 2010-10-06T17:54:27Z
Distributions NixOS:
Executables bff-stats-render, bff-stats-print, bff-stats, bff-cgi, bff-shell
Downloads 4278 total (55 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2016-12-28 [all 7 reports]


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



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

For package maintainers and hackage trustees