A lens is a bidirectional program. When read from left to right, it denotes an ordinary function that maps inputs to outputs. When read from right to left, it denotes an "upd...
Aaron Bohannon, J. Nathan Foster, Benjamin C. Pier...
There are now a number of bidirectional programming languages, where every program can be read both as a forward transformation mapping one data structure to another and as a reve...
J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C...
Bidirectional programming languages are a practical approach to the view update problem. Programs in these languages, called lenses, define both a view and an update policy--i.e.,...
Davi M. J. Barbosa, Julien Cretin, Nate Foster, Mi...