Polymorphic lenses

Two encodings of van Laarhoven style lenses allowing polymorphic updates