Package0.4.1.1DataOpticsLenses
optics-core
Optics as an abstract interface: core definitions
- Version0.4.1.1
- CategoryData, Optics, Lenses
- LicenceBSD-3-Clause
- AuthorAdam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus
- Maintaineroptics@well-typed.com
- Pinned byhackage optics-core 0.4.1.1
- Sourcehackage.haskell.org/package/optics-core-0.4.1.1
Modules
66 modules- Data.Either.Optics2This module defines Prisms for the constructors of the Either datatype.
- Data.IntMap.Optics5IntMap is an instance of At and provides
- Data.IntSet.Optics3This module defines optics for constructing and manipulating finite IntSets.
- Data.List.Optics2Additional optics for manipulating lists are present more generically in this
- Data.Map.Optics5This module exists to provide documentation for lenses for working with
- Data.Maybe.Optics3This module defines Prisms for the constructors of the Maybe datatype.
- Data.Sequence.Optics6This module defines optics for constructing and manipulating finite Seqs.
- Data.Set.Optics2This module defines optics for constructing and manipulating finite Sets.
- Data.Tree.Optics2This module defines optics for manipulating Trees.
- Data.Tuple.Optics18This module defines Lenses for the fields of tuple types. These are
- Data.Typeable.Optics2
- GHC.Generics.Optics10Note: GHC.Generics exports a number of names that collide with Optics
- Numeric.Optics13
- Optics.AffineFold10An AffineFold is a Fold that contains at most one
- Optics.AffineTraversal11An AffineTraversal is a Traversal that
- Optics.Arrow2
- Optics.At.Core8This module provides optics for Map and Set-like containers, including an
- Optics.Coerce4This module defines operations to coerce the type parameters of optics to
- Optics.Cons.Core14This module defines the Cons and Snoc classes, which provide Prisms for
- Optics.Core0See the Optics module in the main optics package for overview
- Optics.Core.Extras1
- Optics.Each.Core1This module defines the Each class, which provides an IxTraversal that
- Optics.Empty.Core2This module defines the AsEmpty class, which provides a Prism for a type
- Optics.Fold45A Fold S A has the ability to extract some number of elements of type A
- Optics.Generic5This module provides, for data types having a Generic instance, a way to
- Optics.Getter5A Getter is simply a function considered as an Optic. Given a function f :: S -> A, we can convert it into a
- Optics.Indexed.Core19This module defines basic functionality for indexed optics. See the "Indexed
- Optics.Iso20An Isomorphism expresses the fact that two types have the
- Optics.IxAffineFold9An IxAffineFold is an indexed version of an AffineFold.
- Optics.IxAffineTraversal10An IxAffineTraversal is an indexed version of an
- Optics.IxFold25An IxFold is an indexed version of a Fold. See the "Indexed
- Optics.IxGetter6An IxGetter is an indexed version of a Getter. See the
- Optics.IxLens13An IxLens is an indexed version of a Lens. See the "Indexed
- Optics.IxSetter10An IxSetter is an indexed version of a Setter. See the
- Optics.IxTraversal26An IxTraversal is an indexed version of a Traversal.
- Optics.Label3Overloaded labels are a solution to Haskell's namespace problem for records.
- Optics.Lens13A Lens is a generalised or first-class field. If we have a value s :: S, and a l :: Lens' S A, we can get
- Optics.Mapping1This module defines mapping, which turns an Optic' k NoIx s a into an
- Optics.Operators10Defines some infix operators for optics operations. This is a deliberately
- Optics.Operators.Unsafe1
- Optics.Optic20This module provides core definitions: an opaque Optic type, which is parameterised over a type representing an
- Optics.Prism11A Prism generalises the notion of a constructor (just as a
- Optics.Re1Some optics can be reversed with re. This is mainly useful to invert
- Optics.ReadOnly1This module defines getting, which turns a read-write optic into its
- Optics.ReversedLens3A ReversedLens is a backwards Lens, i.e. a ReversedLens s t
- Optics.ReversedPrism3A ReversedPrism is a backwards Prism, i.e. a
- Optics.Review4A Review is a backwards Getter, i.e. a
- Optics.Setter11A Setter S T A B has the ability to lift a function of type
- Optics.Traversal24A Traversal lifts an effectful operation on elements to act on structures
Internal modules · 17
- Optics.Internal.Bi4Classes for co- and contravariant bifunctors. This module is intended for internal use only, and may change without warning
- Optics.Internal.Fold7Internal implementation details of folds. This module is intended for internal use only, and may change without warning
- Optics.Internal.Generic23
- Optics.Internal.Generic.TypeLevel9This module is intended for internal use only, and may change without
- Optics.Internal.Indexed9Internal implementation details of indexed optics. This module is intended for internal use only, and may change without warning
- Optics.Internal.Indexed.Classes23Internal implementation details of indexed optics. This module is intended for internal use only, and may change without warning
- Optics.Internal.IxFold3Internal implementation details of indexed folds. This module is intended for internal use only, and may change without warning
- Optics.Internal.IxSetter1Internal implementation details of indexed setters. This module is intended for internal use only, and may change without warning
- Optics.Internal.IxTraversal1Internal implementation details of indexed traversals. This module is intended for internal use only, and may change without warning
- Optics.Internal.Magic2This module is intended for internal use only, and may change without
- Optics.Internal.Optic9Core optic types and subtyping machinery. This module contains the core Optic types, and the underlying
- Optics.Internal.Optic.Subtyping13Instances to implement the subtyping hierarchy between optics. This module is intended for internal use only, and may change without warning
- Optics.Internal.Optic.TypeLevel24This module is intended for internal use only, and may change without
- Optics.Internal.Optic.Types14This module is intended for internal use only, and may change without
- Optics.Internal.Setter1Internal implementation details of setters. This module is intended for internal use only, and may change without warning
- Optics.Internal.Traversal1Internal implementation details of traversals. This module is intended for internal use only, and may change without warning
- Optics.Internal.Utils10This module is intended for internal use only, and may change without warning
Description
This package makes it possible to define and use Lenses, Traversals, Prisms and other optics, using an abstract interface.
This variant provides core definitions with a minimal dependency footprint. See the optics package (and its dependencies) for documentation and the "batteries-included" variant.
Depends on
6 packages- array-0.5.8.0with GHC
- base-4.20.2.0with GHC
- containers-0.7with GHC
- indexed-profunctors-0.1.1.1in this set
- indexed-traversable-0.1.4in this set
- transformers-0.6.1.1with GHC