Optics is the name given to a family of data accessing patterns in functional programming. These patters can be abstracted so that they can be reutilized across different data structures; they can be also composed together, forming a modular language for compositional data accessing.

See notes.

Literature.