Optics as an abstract interface

Version on this page:0.2
LTS Haskell 22.16:
Stackage Nightly 2024-04-12:
Latest on Hackage:

See all snapshots optics appears in

BSD-3-Clause licensed by Adam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus
Maintained by [email protected]
This version can be pinned in stack with:optics-0.2@sha256:813ef6cc4d2e2b5ee00435831031f38917ba01d1e56dcb62dc18cd0315a9ccb7,6296

Module documentation for 0.2

This package makes it possible to define and use Lenses, Traversals, Prisms and other optics, using an abstract interface. See the main module Optics for the documentation.

This is the "batteries-included" variant with many dependencies; see the optics-core package and other optics-* dependencies if you need a more limited dependency footprint.

Note: Hackage does not yet display documentation for reexported-modules, but you can start from the Optics module documentation or see the module list in optics-core.


optics-0.2 (2019-10-18)

  • Add non, non' and anon to Optics.Iso
  • ix can produce optic kinds other than AffineTraversal
  • Generalise type of generic1
  • Move use from Optics.View to Optics.State and restrict its type
  • Add preuse to Optics.State
  • Rename use, uses, listening and listenings to reflect the fact that they have ViewResult-generalised types
  • Add noPrefixFieldLabels and noPrefixNamer to Optics.TH
  • Move some internal definitions out to new indexed-profunctors package
  • Introduce OpticKind and IxList type synonyms for better type inference
  • Make itraverse for Seq faster for containers >= 0.6.0
  • Assorted documentation improvements

optics-0.1 (2019-09-02)

  • Initial release