A "proper" lens should satisfy the following so-called "lens laws":
View-Set: set(d, l, view(d, l)) == d
Set-View: view(set(d, l, x), l) == x
Set-Set: set(set(d, l, x), l, y) == set(d, l, y)
These laws are not enforced by tinylens, but you should strive to follow them
when creating your own lenses.
A best effort has been made to ensure that these laws hold for the lenses
provided by tinylens, but this is trickier than it might seem because of
how R handles subset assignments.