BiGUL: The Bidirectional Generic Update Language

[ generics, language, lenses, library, public-domain ] [ Propose Tags ]

Putback-based bidirectional programming allows the programmer to write only one putback transformation, from which the unique corresponding forward transformation is derived for free. BiGUL, short for the Bidirectional Generic Update Language, is designed to be a minimalist putback-based bidirectional programming language. BiGUL was originally developed in the dependently typed programming language Agda, and its well-behavedness has been completely formally verified; this package is the Haskell port of BiGUL.

For more detail, see the following paper:

  • Hsiang-Shang Ko, Tao Zan, and Zhenjiang Hu. BiGUL: A formally verified core language for putback-based bidirectional programming. In Partial Evaluation and Program Manipulation, PEPM’16, pages 61–72. ACM, 2016.


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS], 1.0.0, 1.0.1
Change log
Dependencies base (>=4.8 && <4.10), containers (>=0.5), mtl (>=2.2), template-haskell (>=2.10), th-extras (>= [details]
License LicenseRef-PublicDomain
Author Josh Ko, Tao Zan, Li Liu, Zirun Zhu, Jorge Mendes, and Zhenjiang Hu
Maintainer Josh Ko <> and Zirun Zhu <>
Category Language, Generics, Lenses
Home page
Uploaded by joshko at 2016-08-30T09:49:01Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2458 total (10 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-08-30 [all 1 reports]