| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Optics.IxAffineFold
Description
An IxAffineFold is an indexed version of an AffineFold.
See the "Indexed optics" section of the overview documentation in the
Optics module of the main optics package for more details on indexed
optics.
Synopsis
- type IxAffineFold i s a = Optic' An_AffineFold (WithIx i) s a
- iafolding :: (s -> Maybe (i, a)) -> IxAffineFold i s a
- ipreview :: (Is k An_AffineFold, is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a)
- ipreviews :: (Is k An_AffineFold, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> r) -> s -> Maybe r
- iafailing :: (Is k An_AffineFold, Is l An_AffineFold, is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxAffineFold i s a
- data An_AffineFold :: OpticKind
Formation
type IxAffineFold i s a = Optic' An_AffineFold (WithIx i) s a Source #
Type synonym for an indexed affine fold.
Introduction
iafolding :: (s -> Maybe (i, a)) -> IxAffineFold i s a Source #
Create an IxAffineFold from a partial function.
Elimination
ipreview :: (Is k An_AffineFold, is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a) Source #
Retrieve the value along with its index targeted by an IxAffineFold.
ipreviews :: (Is k An_AffineFold, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> r) -> s -> Maybe r Source #
Retrieve a function of the value and its index targeted by an
IxAffineFold.
Computation
Semigroup structure
iafailing :: (Is k An_AffineFold, Is l An_AffineFold, is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxAffineFold i s a infixl 3 Source #
Try the first IxAffineFold. If it returns no entry, try the second one.
Note: There is no isumming equivalent, because iasumming = iafailing.
Subtyping
data An_AffineFold :: OpticKind Source #
Tag for an affine fold.