Constructing Lenses Automatically

Derive lenses for the record selectors in
a single-constructor data declaration,
or for the record selector in a newtype declaration.
Lenses will only be generated for record fields which
are prefixed with an underscore.