Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type IxFold i s a = Optic' A_Fold ( WithIx i) s a
- ifoldVL :: ( forall f. Applicative f => (i -> a -> f u) -> s -> f v) -> IxFold i s a
- ifoldMapOf :: ( Is k A_Fold , Monoid m, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> m) -> s -> m
- ifoldrOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> r -> r) -> r -> s -> r
- ifoldlOf' :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> r -> a -> r) -> r -> s -> r
- itoListOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> [(i, a)]
- itraverseOf_ :: ( Is k A_Fold , Applicative f, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> f r) -> s -> f ()
- iforOf_ :: ( Is k A_Fold , Applicative f, is `HasSingleIndex` i) => Optic' k is s a -> s -> (i -> a -> f r) -> f ()
- ifolded :: FoldableWithIndex i f => IxFold i (f a) a
- ifolding :: FoldableWithIndex i f => (s -> f a) -> IxFold i s a
- ifoldring :: ( forall f. Applicative f => (i -> a -> f u -> f u) -> f v -> s -> f w) -> IxFold i s a
- iheadOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a)
- ilastOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a)
- ianyOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool
- iallOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool
- inoneOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool
- ifindOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Maybe (i, a)
- ifindMOf :: ( Is k A_Fold , Monad m, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> m Bool ) -> s -> m ( Maybe (i, a))
- ipre :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> IxAffineFold i s a
- ifiltered :: ( Is k A_Fold , is `HasSingleIndex` i) => (i -> a -> Bool ) -> Optic' k is s a -> IxFold i s a
- ibackwards_ :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> IxFold i s a
- isumming :: ( Is k A_Fold , Is l A_Fold , is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxFold i s a
- ifailing :: ( Is k A_Fold , Is l A_Fold , is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxFold i s a
- data A_Fold :: OpticKind
- class Foldable f => FoldableWithIndex i (f :: Type -> Type ) | f -> i where
Formation
Introduction
ifoldVL :: ( forall f. Applicative f => (i -> a -> f u) -> s -> f v) -> IxFold i s a Source #
Obtain an indexed fold by lifting
itraverse_
like function.
ifoldVL
.
itraverseOf_
≡id
itraverseOf_
.
ifoldVL
≡id
Elimination
ifoldMapOf :: ( Is k A_Fold , Monoid m, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> m) -> s -> m Source #
Fold with index via embedding into a monoid.
ifoldrOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> r -> r) -> r -> s -> r Source #
Fold with index right-associatively.
ifoldlOf' :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> r -> a -> r) -> r -> s -> r Source #
Fold with index left-associatively, and strictly.
itoListOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> [(i, a)] Source #
Fold with index to a list.
>>>
itoListOf (folded % ifolded) ["abc", "def"]
[(0,'a'),(1,'b'),(2,'c'),(0,'d'),(1,'e'),(2,'f')]
Note: currently indexed optics can be used as non-indexed.
>>>
toListOf (folded % ifolded) ["abc", "def"]
"abcdef"
itraverseOf_ :: ( Is k A_Fold , Applicative f, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> f r) -> s -> f () Source #
Traverse over all of the targets of an
IxFold
, computing an
Applicative
-based answer, but unlike
itraverseOf
do
not construct a new structure.
>>>
itraverseOf_ each (curry print) ("hello","world")
(0,"hello") (1,"world")
iforOf_ :: ( Is k A_Fold , Applicative f, is `HasSingleIndex` i) => Optic' k is s a -> s -> (i -> a -> f r) -> f () Source #
A version of
itraverseOf_
with the arguments flipped.
Additional introduction forms
ifolded :: FoldableWithIndex i f => IxFold i (f a) a Source #
Indexed fold via
FoldableWithIndex
class.
ifolding :: FoldableWithIndex i f => (s -> f a) -> IxFold i s a Source #
Obtain an
IxFold
by lifting an operation that returns a
FoldableWithIndex
result.
This can be useful to lift operations from
Data.List
and elsewhere into an
IxFold
.
>>>
itoListOf (ifolding words) "how are you"
[(0,"how"),(1,"are"),(2,"you")]
ifoldring :: ( forall f. Applicative f => (i -> a -> f u -> f u) -> f v -> s -> f w) -> IxFold i s a Source #
Additional elimination forms
iheadOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a) Source #
Retrieve the first entry of an
IxFold
along with its index.
>>>
iheadOf ifolded [1..10]
Just (0,1)
ilastOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> s -> Maybe (i, a) Source #
Retrieve the last entry of an
IxFold
along with its index.
>>>
ilastOf ifolded [1..10]
Just (9,10)
ianyOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool Source #
iallOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool Source #
inoneOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Bool Source #
ifindOf :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> Bool ) -> s -> Maybe (i, a) Source #
The
ifindOf
function takes an
IxFold
, a predicate that is also supplied
the index, a structure and returns the left-most element of the structure
along with its index matching the predicate, or
Nothing
if there is no such
element.
When you don't need access to the index then
findOf
is more flexible in
what it accepts.
ifindMOf :: ( Is k A_Fold , Monad m, is `HasSingleIndex` i) => Optic' k is s a -> (i -> a -> m Bool ) -> s -> m ( Maybe (i, a)) Source #
The
ifindMOf
function takes an
IxFold
, a monadic predicate that is also
supplied the index, a structure and returns in the monad the left-most
element of the structure matching the predicate, or
Nothing
if there is no
such element.
When you don't need access to the index then
findMOf
is more flexible in
what it accepts.
Combinators
ipre :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> IxAffineFold i s a Source #
Convert an indexed fold to an
IxAffineFold
that visits the first element
of the original fold.
For the traversal version see
isingular
.
ifiltered :: ( Is k A_Fold , is `HasSingleIndex` i) => (i -> a -> Bool ) -> Optic' k is s a -> IxFold i s a Source #
Filter results of an
IxFold
that don't satisfy a predicate.
>>>
toListOf (ifolded %& ifiltered (>)) [3,2,1,0]
[1,0]
ibackwards_ :: ( Is k A_Fold , is `HasSingleIndex` i) => Optic' k is s a -> IxFold i s a Source #
This allows you to traverse the elements of an
IxFold
in the opposite
order.
Monoid structures
IxFold
admits (at least) two monoid structures:
-
isumming
concatenates results from both folds. -
ifailing
returns results from the second fold only if the first returns no results.
In both cases, the identity element of the monoid is
ignored
, which returns no results.
There is no
Semigroup
or
Monoid
instance for
IxFold
, because there is
not a unique choice of monoid to use, and the (
<>
) operator could not be
used to combine optics of different kinds.
isumming :: ( Is k A_Fold , Is l A_Fold , is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxFold i s a infixr 6 Source #
ifailing :: ( Is k A_Fold , Is l A_Fold , is1 `HasSingleIndex` i, is2 `HasSingleIndex` i) => Optic' k is1 s a -> Optic' l is2 s a -> IxFold i s a infixl 3 Source #
Try the first
IxFold
. If it returns no entries, try the second one.
>>>
itoListOf (_1 % ifolded `ifailing` _2 % ifolded) (["a"], ["b","c"])
[(0,"a")]>>>
itoListOf (_1 % ifolded `ifailing` _2 % ifolded) ([], ["b","c"])
[(0,"b"),(1,"c")]
Subtyping
data A_Fold :: OpticKind Source #
Tag for a fold.
Instances
Re-exports
class Foldable f => FoldableWithIndex i (f :: Type -> Type ) | f -> i where Source #
A container that supports folding with an additional index.
Nothing
ifoldMap :: Monoid m => (i -> a -> m) -> f a -> m Source #
Fold a container by mapping value to an arbitrary
Monoid
with access to the index
i
.
When you don't need access to the index then
foldMap
is more flexible in what it accepts.
foldMap
≡ifoldMap
.
const
ifoldMap' :: Monoid m => (i -> a -> m) -> f a -> m Source #
A variant of
ifoldMap
that is strict in the accumulator.
When you don't need access to the index then
foldMap'
is more flexible in what it accepts.
foldMap'
≡ifoldMap'
.
const
ifoldr :: (i -> a -> b -> b) -> b -> f a -> b Source #
Right-associative fold of an indexed container with access to the index
i
.
When you don't need access to the index then
foldr
is more flexible in what it accepts.
foldr
≡ifoldr
.
const
ifoldl :: (i -> b -> a -> b) -> b -> f a -> b Source #
Left-associative fold of an indexed container with access to the index
i
.
When you don't need access to the index then
foldl
is more flexible in what it accepts.
foldl
≡ifoldl
.
const
Instances
FoldableWithIndex Int [] | |
Defined in WithIndex |
|
FoldableWithIndex Int ZipList | |
Defined in WithIndex ifoldMap :: Monoid m => ( Int -> a -> m) -> ZipList a -> m Source # ifoldMap' :: Monoid m => ( Int -> a -> m) -> ZipList a -> m Source # ifoldr :: ( Int -> a -> b -> b) -> b -> ZipList a -> b Source # ifoldl :: ( Int -> b -> a -> b) -> b -> ZipList a -> b Source # ifoldr' :: ( Int -> a -> b -> b) -> b -> ZipList a -> b Source # ifoldl' :: ( Int -> b -> a -> b) -> b -> ZipList a -> b Source # |
|
FoldableWithIndex Int NonEmpty | |
Defined in WithIndex ifoldMap :: Monoid m => ( Int -> a -> m) -> NonEmpty a -> m Source # ifoldMap' :: Monoid m => ( Int -> a -> m) -> NonEmpty a -> m Source # ifoldr :: ( Int -> a -> b -> b) -> b -> NonEmpty a -> b Source # ifoldl :: ( Int -> b -> a -> b) -> b -> NonEmpty a -> b Source # ifoldr' :: ( Int -> a -> b -> b) -> b -> NonEmpty a -> b Source # ifoldl' :: ( Int -> b -> a -> b) -> b -> NonEmpty a -> b Source # |
|
FoldableWithIndex Int IntMap | |
Defined in WithIndex ifoldMap :: Monoid m => ( Int -> a -> m) -> IntMap a -> m Source # ifoldMap' :: Monoid m => ( Int -> a -> m) -> IntMap a -> m Source # ifoldr :: ( Int -> a -> b -> b) -> b -> IntMap a -> b Source # ifoldl :: ( Int -> b -> a -> b) -> b -> IntMap a -> b Source # ifoldr' :: ( Int -> a -> b -> b) -> b -> IntMap a -> b Source # ifoldl' :: ( Int -> b -> a -> b) -> b -> IntMap a -> b Source # |
|
FoldableWithIndex Int Seq | |
Defined in WithIndex ifoldMap :: Monoid m => ( Int -> a -> m) -> Seq a -> m Source # ifoldMap' :: Monoid m => ( Int -> a -> m) -> Seq a -> m Source # ifoldr :: ( Int -> a -> b -> b) -> b -> Seq a -> b Source # ifoldl :: ( Int -> b -> a -> b) -> b -> Seq a -> b Source # ifoldr' :: ( Int -> a -> b -> b) -> b -> Seq a -> b Source # ifoldl' :: ( Int -> b -> a -> b) -> b -> Seq a -> b Source # |
|
FoldableWithIndex () Maybe | |
Defined in WithIndex ifoldMap :: Monoid m => (() -> a -> m) -> Maybe a -> m Source # ifoldMap' :: Monoid m => (() -> a -> m) -> Maybe a -> m Source # ifoldr :: (() -> a -> b -> b) -> b -> Maybe a -> b Source # ifoldl :: (() -> b -> a -> b) -> b -> Maybe a -> b Source # ifoldr' :: (() -> a -> b -> b) -> b -> Maybe a -> b Source # ifoldl' :: (() -> b -> a -> b) -> b -> Maybe a -> b Source # |
|
FoldableWithIndex () Par1 | |
Defined in WithIndex ifoldMap :: Monoid m => (() -> a -> m) -> Par1 a -> m Source # ifoldMap' :: Monoid m => (() -> a -> m) -> Par1 a -> m Source # ifoldr :: (() -> a -> b -> b) -> b -> Par1 a -> b Source # ifoldl :: (() -> b -> a -> b) -> b -> Par1 a -> b Source # |
|
FoldableWithIndex () Identity | |
Defined in WithIndex ifoldMap :: Monoid m => (() -> a -> m) -> Identity a -> m Source # ifoldMap' :: Monoid m => (() -> a -> m) -> Identity a -> m Source # ifoldr :: (() -> a -> b -> b) -> b -> Identity a -> b Source # ifoldl :: (() -> b -> a -> b) -> b -> Identity a -> b Source # ifoldr' :: (() -> a -> b -> b) -> b -> Identity a -> b Source # ifoldl' :: (() -> b -> a -> b) -> b -> Identity a -> b Source # |
|
FoldableWithIndex k ( Map k) | |
Defined in WithIndex ifoldMap :: Monoid m => (k -> a -> m) -> Map k a -> m Source # ifoldMap' :: Monoid m => (k -> a -> m) -> Map k a -> m Source # ifoldr :: (k -> a -> b -> b) -> b -> Map k a -> b Source # ifoldl :: (k -> b -> a -> b) -> b -> Map k a -> b Source # |
|
FoldableWithIndex k ( (,) k) | |
Defined in WithIndex |
|
Ix i => FoldableWithIndex i ( Array i) | |
Defined in WithIndex ifoldMap :: Monoid m => (i -> a -> m) -> Array i a -> m Source # ifoldMap' :: Monoid m => (i -> a -> m) -> Array i a -> m Source # ifoldr :: (i -> a -> b -> b) -> b -> Array i a -> b Source # ifoldl :: (i -> b -> a -> b) -> b -> Array i a -> b Source # ifoldr' :: (i -> a -> b -> b) -> b -> Array i a -> b Source # ifoldl' :: (i -> b -> a -> b) -> b -> Array i a -> b Source # |
|
FoldableWithIndex Void ( V1 :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> V1 a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> V1 a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> V1 a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> V1 a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> V1 a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> V1 a -> b Source # |
|
FoldableWithIndex Void ( U1 :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> U1 a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> U1 a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> U1 a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> U1 a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> U1 a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> U1 a -> b Source # |
|
FoldableWithIndex Void ( Proxy :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> Proxy a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> Proxy a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> Proxy a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> Proxy a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> Proxy a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> Proxy a -> b Source # |
|
FoldableWithIndex i f => FoldableWithIndex i ( Reverse f) | |
Defined in WithIndex ifoldMap :: Monoid m => (i -> a -> m) -> Reverse f a -> m Source # ifoldMap' :: Monoid m => (i -> a -> m) -> Reverse f a -> m Source # ifoldr :: (i -> a -> b -> b) -> b -> Reverse f a -> b Source # ifoldl :: (i -> b -> a -> b) -> b -> Reverse f a -> b Source # ifoldr' :: (i -> a -> b -> b) -> b -> Reverse f a -> b Source # ifoldl' :: (i -> b -> a -> b) -> b -> Reverse f a -> b Source # |
|
FoldableWithIndex i f => FoldableWithIndex i ( Rec1 f) | |
Defined in WithIndex ifoldMap :: Monoid m => (i -> a -> m) -> Rec1 f a -> m Source # ifoldMap' :: Monoid m => (i -> a -> m) -> Rec1 f a -> m Source # ifoldr :: (i -> a -> b -> b) -> b -> Rec1 f a -> b Source # ifoldl :: (i -> b -> a -> b) -> b -> Rec1 f a -> b Source # ifoldr' :: (i -> a -> b -> b) -> b -> Rec1 f a -> b Source # ifoldl' :: (i -> b -> a -> b) -> b -> Rec1 f a -> b Source # |
|
FoldableWithIndex i m => FoldableWithIndex i ( IdentityT m) | |
Defined in WithIndex ifoldMap :: Monoid m0 => (i -> a -> m0) -> IdentityT m a -> m0 Source # ifoldMap' :: Monoid m0 => (i -> a -> m0) -> IdentityT m a -> m0 Source # ifoldr :: (i -> a -> b -> b) -> b -> IdentityT m a -> b Source # ifoldl :: (i -> b -> a -> b) -> b -> IdentityT m a -> b Source # ifoldr' :: (i -> a -> b -> b) -> b -> IdentityT m a -> b Source # ifoldl' :: (i -> b -> a -> b) -> b -> IdentityT m a -> b Source # |
|
FoldableWithIndex i f => FoldableWithIndex i ( Backwards f) | |
Defined in WithIndex ifoldMap :: Monoid m => (i -> a -> m) -> Backwards f a -> m Source # ifoldMap' :: Monoid m => (i -> a -> m) -> Backwards f a -> m Source # ifoldr :: (i -> a -> b -> b) -> b -> Backwards f a -> b Source # ifoldl :: (i -> b -> a -> b) -> b -> Backwards f a -> b Source # ifoldr' :: (i -> a -> b -> b) -> b -> Backwards f a -> b Source # ifoldl' :: (i -> b -> a -> b) -> b -> Backwards f a -> b Source # |
|
FoldableWithIndex Void ( Const e :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> Const e a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> Const e a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> Const e a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> Const e a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> Const e a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> Const e a -> b Source # |
|
FoldableWithIndex Void ( Constant e :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> Constant e a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> Constant e a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> Constant e a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> Constant e a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> Constant e a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> Constant e a -> b Source # |
|
FoldableWithIndex Void ( K1 i c :: Type -> Type ) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Void -> a -> m) -> K1 i c a -> m Source # ifoldMap' :: Monoid m => ( Void -> a -> m) -> K1 i c a -> m Source # ifoldr :: ( Void -> a -> b -> b) -> b -> K1 i c a -> b Source # ifoldl :: ( Void -> b -> a -> b) -> b -> K1 i c a -> b Source # ifoldr' :: ( Void -> a -> b -> b) -> b -> K1 i c a -> b Source # ifoldl' :: ( Void -> b -> a -> b) -> b -> K1 i c a -> b Source # |
|
FoldableWithIndex [ Int ] Tree | |
Defined in WithIndex ifoldMap :: Monoid m => ([ Int ] -> a -> m) -> Tree a -> m Source # ifoldMap' :: Monoid m => ([ Int ] -> a -> m) -> Tree a -> m Source # ifoldr :: ([ Int ] -> a -> b -> b) -> b -> Tree a -> b Source # ifoldl :: ([ Int ] -> b -> a -> b) -> b -> Tree a -> b Source # ifoldr' :: ([ Int ] -> a -> b -> b) -> b -> Tree a -> b Source # ifoldl' :: ([ Int ] -> b -> a -> b) -> b -> Tree a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex ( Either i j) ( Sum f g) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Either i j -> a -> m) -> Sum f g a -> m Source # ifoldMap' :: Monoid m => ( Either i j -> a -> m) -> Sum f g a -> m Source # ifoldr :: ( Either i j -> a -> b -> b) -> b -> Sum f g a -> b Source # ifoldl :: ( Either i j -> b -> a -> b) -> b -> Sum f g a -> b Source # ifoldr' :: ( Either i j -> a -> b -> b) -> b -> Sum f g a -> b Source # ifoldl' :: ( Either i j -> b -> a -> b) -> b -> Sum f g a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex ( Either i j) ( Product f g) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Either i j -> a -> m) -> Product f g a -> m Source # ifoldMap' :: Monoid m => ( Either i j -> a -> m) -> Product f g a -> m Source # ifoldr :: ( Either i j -> a -> b -> b) -> b -> Product f g a -> b Source # ifoldl :: ( Either i j -> b -> a -> b) -> b -> Product f g a -> b Source # ifoldr' :: ( Either i j -> a -> b -> b) -> b -> Product f g a -> b Source # ifoldl' :: ( Either i j -> b -> a -> b) -> b -> Product f g a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex ( Either i j) (f :+: g) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Either i j -> a -> m) -> (f :+: g) a -> m Source # ifoldMap' :: Monoid m => ( Either i j -> a -> m) -> (f :+: g) a -> m Source # ifoldr :: ( Either i j -> a -> b -> b) -> b -> (f :+: g) a -> b Source # ifoldl :: ( Either i j -> b -> a -> b) -> b -> (f :+: g) a -> b Source # ifoldr' :: ( Either i j -> a -> b -> b) -> b -> (f :+: g) a -> b Source # ifoldl' :: ( Either i j -> b -> a -> b) -> b -> (f :+: g) a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex ( Either i j) (f :*: g) | |
Defined in WithIndex ifoldMap :: Monoid m => ( Either i j -> a -> m) -> (f :*: g) a -> m Source # ifoldMap' :: Monoid m => ( Either i j -> a -> m) -> (f :*: g) a -> m Source # ifoldr :: ( Either i j -> a -> b -> b) -> b -> (f :*: g) a -> b Source # ifoldl :: ( Either i j -> b -> a -> b) -> b -> (f :*: g) a -> b Source # ifoldr' :: ( Either i j -> a -> b -> b) -> b -> (f :*: g) a -> b Source # ifoldl' :: ( Either i j -> b -> a -> b) -> b -> (f :*: g) a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (i, j) ( Compose f g) | |
Defined in WithIndex ifoldMap :: Monoid m => ((i, j) -> a -> m) -> Compose f g a -> m Source # ifoldMap' :: Monoid m => ((i, j) -> a -> m) -> Compose f g a -> m Source # ifoldr :: ((i, j) -> a -> b -> b) -> b -> Compose f g a -> b Source # ifoldl :: ((i, j) -> b -> a -> b) -> b -> Compose f g a -> b Source # ifoldr' :: ((i, j) -> a -> b -> b) -> b -> Compose f g a -> b Source # ifoldl' :: ((i, j) -> b -> a -> b) -> b -> Compose f g a -> b Source # |
|
( FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (i, j) (f :.: g) | |
Defined in WithIndex ifoldMap :: Monoid m => ((i, j) -> a -> m) -> (f :.: g) a -> m Source # ifoldMap' :: Monoid m => ((i, j) -> a -> m) -> (f :.: g) a -> m Source # ifoldr :: ((i, j) -> a -> b -> b) -> b -> (f :.: g) a -> b Source # ifoldl :: ((i, j) -> b -> a -> b) -> b -> (f :.: g) a -> b Source # ifoldr' :: ((i, j) -> a -> b -> b) -> b -> (f :.: g) a -> b Source # ifoldl' :: ((i, j) -> b -> a -> b) -> b -> (f :.: g) a -> b Source # |