optics: Optics as an abstract interface

[ bsd3, data, lenses, library, optics ] [ Propose Tags ]

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.

Versions [faq] 0.1, 0.2, 0.3
Change log CHANGELOG.md
Dependencies array (>=0.5.1.1 && <0.6), base (>=4.9 && <5), containers (>=0.5.7.1 && <0.7), mtl (>=2.2.2 && <2.3), optics-core (>=0.3 && <0.3.1), optics-extra (>=0.3 && <0.3.1), optics-th (>=0.3 && <0.3.1), transformers (==0.5.*) [details]
License BSD-3-Clause
Author Adam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus
Maintainer optics@well-typed.com
Category Data, Optics, Lenses
Bug tracker https://github.com/well-typed/optics/issues
Source repo head: git clone https://github.com/well-typed/optics.git(optics)
Uploaded by AdamGundry at 2020-04-15T21:03:38Z
Distributions NixOS:0.3
Downloads 1456 total (152 in the last 30 days)
Rating 2.5 (votes: 4) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-04-15 [all 1 reports]

Modules

[Index] [Quick Jump]

  • Data
    • ByteString
      • Lazy
        • Data.ByteString.Lazy.Optics
      • Data.ByteString.Optics
      • Strict
        • Data.ByteString.Strict.Optics
    • Either
      • Data.Either.Optics
    • HashMap
      • Data.HashMap.Optics
    • HashSet
      • Data.HashSet.Optics
    • IntMap
      • Data.IntMap.Optics
    • IntSet
      • Data.IntSet.Optics
    • List
      • Data.List.Optics
    • Map
      • Data.Map.Optics
    • Maybe
      • Data.Maybe.Optics
    • Sequence
      • Data.Sequence.Optics
    • Set
      • Data.Set.Optics
    • Text
      • Lazy
        • Data.Text.Lazy.Optics
      • Data.Text.Optics
      • Strict
        • Data.Text.Strict.Optics
    • Tree
      • Data.Tree.Optics
    • Tuple
      • Data.Tuple.Optics
    • Typeable
      • Data.Typeable.Optics
    • Vector
      • Generic
        • Data.Vector.Generic.Optics
      • Data.Vector.Optics
  • GHC
    • Generics
      • GHC.Generics.Optics
  • Numeric
    • Numeric.Optics
  • Optics
    • Optics.AffineFold
    • Optics.AffineTraversal
    • Optics.Arrow
    • Optics.At
    • Optics.Coerce
    • Optics.Cons
    • Optics.Each
    • Optics.Empty
    • Optics.Fold
    • Optics.Getter
    • Optics.Indexed
    • Optics.Iso
    • Optics.IxAffineFold
    • Optics.IxAffineTraversal
    • Optics.IxFold
    • Optics.IxGetter
    • Optics.IxLens
    • Optics.IxSetter
    • Optics.IxTraversal
    • Optics.Label
    • Optics.Lens
    • Optics.Mapping
    • Optics.Operators
      • Optics.Operators.Unsafe
    • Optics.Optic
    • Optics.Passthrough
    • Optics.Prism
    • Optics.Re
    • Optics.ReadOnly
    • Optics.ReversedLens
    • Optics.ReversedPrism
    • Optics.Review
    • Optics.Setter
    • Optics.State
      • Optics.State.Operators
    • Optics.TH
    • Optics.Traversal
    • Optics.View
    • Optics.Zoom

Downloads

Maintainer's Corner

For package maintainers and hackage trustees