Generically derive traversals, lenses and prisms.

This library uses GHC.Generics to derive efficient optics (traversals, lenses and prisms) for algebraic data types in a type-directed way, with a focus on good type inference and error messages when possible.

The library exposes a van Laarhoven interface. For an alternative interface, supporting an opaque optic type, see generic-optics.