Type synonym for an affine fold.
Moduleoptics-core-0.4.1.1Haskell2010
Optics.AffineFold
An AffineFold is a Fold that contains at most one element, or a Getter where the function may be partial.
- 2 types
- 8 values
- Packageoptics-core-0.4.1.1
- Exports10
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceAffineFold.hs
Formation
1 declarationIntroduction
1 declarationCreate an AffineFold from a partial function.
preview (afolding listToMaybe) "foo"Just 'f'
Elimination
2 declarationsRetrieve the value targeted by an AffineFold.
let _Right = prism Right $ either (Left . Left) Rightpreview _Right (Right 'x')Just 'x'
preview _Right (Left 'y')Nothing
Retrieve a function of the value targeted by an AffineFold.
Computation
0 declarationsAdditional introduction forms
2 declarationsObtain an AffineFold by lifting traverse_ like function.
afoldVL . atraverseOf_ ≡ id
atraverseOf_ . afoldVL ≡ id
Filter result(s) of a fold that don't satisfy a predicate.
Additional elimination forms
2 declarationsTraverse over the target of an AffineFold, computing a Functor-based answer, but unlike atraverseOf do not construct a new structure.
Check to see if this AffineFold doesn't match.
isn't _Just NothingTrue
The negation of this operator is is from Optics.Core.Extras.
Monoid structure
1 declarationAffineFold admits a monoid structure where afailing combines folds (returning a result from the second fold only if the first returns none) and the identity element is ignored (which returns no results).
Note: There is no summing equivalent that returns an AffineFold, because it would not need to return more than one result.
There is no Semigroup or Monoid instance for AffineFold, because there is not a unique choice of monoid to use that works for all optics, and the (<>) operator could not be used to combine optics of different kinds.
Try the first AffineFold. If it returns no entry, try the second one.
preview (ix 1 % re _Left `afailing` ix 2 % re _Right) [0,1,2,3]Just (Left 1)
preview (ix 42 % re _Left `afailing` ix 2 % re _Right) [0,1,2,3]Just (Right 2)
Subtyping
1 declarationTag for an affine fold.
Instances27Is, JoinKinds, IxOptic, ToReadOnly, ReadOnlyOptic, …
Is A_Getter An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs A_Lens An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs A_Prism An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs A_ReversedPrism An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs An_AffineFold A_FoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs An_AffineTraversal An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.SubtypingIs An_Iso An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ A_Fold => JoinKinds A_Fold An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ A_Fold => JoinKinds A_Traversal An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ A_Fold => JoinKinds An_AffineFold A_Fold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ A_Fold => JoinKinds An_AffineFold A_Traversal kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds A_Getter An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds A_Lens An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds A_Prism An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds A_ReversedPrism An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold A_Getter kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold A_Lens kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold A_Prism kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold A_ReversedPrism kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold An_AffineTraversal kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineFold An_Iso kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_AffineTraversal An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtypingk ~ An_AffineFold => JoinKinds An_Iso An_AffineFold kDefined in optics-core-0.4.1.1 · Optics.Internal.Optic.Subtyping(s ~ t, a ~ b) => IxOptic An_AffineFold s t a bDefined in optics-core-0.4.1.1 · Optics.Indexed.Core(s ~ t, a ~ b) => ToReadOnly An_AffineFold s t a bDefined in optics-core-0.4.1.1 · Optics.ReadOnlytype ReadOnlyOptic An_AffineFold = An_AffineFoldDefined in optics-core-0.4.1.1 · Optics.ReadOnly