name: bff version: 0.3.1.2 license: PublicDomain description: 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: . author: Janis Voigtlaender, Joachim Breitner maintainer: Janis Voigtlaender category: Data synopsis: Bidirectionalization for Free! (POPL'09) build-type: Simple cabal-version: >= 1.2 extra-source-files: QuickCheckTH.hs QuickCheck.hs testcgi.py flag binaries description: Build the binaries bff-shell and bff-cgi default: False flag stats description: Build the stats-generating and -printing programs default: False flag render description: Build the stats-rendering program default: False library exposed-modules: SimpleTree Data.Zippable Data.IntMapEq Data.IntMapOrd Data.Bff other-modules: Data.Derive.Zippable Data.Zippable.Definition build-depends: base >= 2 && < 5, containers, mtl, template-haskell, category-extras >= 0.53.5, derive == 0.1.1, haskell98, bimap >= 0.2.3, unix executable bff-shell main-is: bff-shell.hs other-modules: MyInterpret if flag(binaries) build-depends: base >= 2 && < 5, directory, hint >= 0.3.2 buildable: True else buildable: False executable bff-cgi main-is: bff-cgi.hs other-modules: MyInterpret if flag(binaries) build-depends: base >= 4 && < 5, directory, xhtml, cgi, hint >= 0.3.2, utf8-string buildable: True else buildable: False executable bff-stats main-is: Stats.hs other-modules: StatsDef if flag(stats) buildable: True build-depends: benchpress >= 0.2.2.2 else buildable: False executable bff-stats-print main-is: StatsPrint.hs other-modules: StatsDef if flag(stats) buildable: True else buildable: False executable bff-stats-render main-is: StatsRender.hs other-modules: StatsDef if flag(render) buildable: True build-depends: Chart >= 0.12, data-accessor, colour else buildable: False