{-# OPTIONS_HADDOCK not-home #-}
module Optics.Internal.IxTraversal where
import Data.Profunctor.Indexed
import Optics.Internal.Fold
import Optics.Internal.Indexed.Classes
import Optics.Internal.IxFold
import Optics.Internal.IxSetter
import Optics.Internal.Optic
import Optics.Internal.Setter
itraversed__
:: (Traversing p, TraversableWithIndex i f)
=> Optic__ p j (i -> j) (f a) (f b) a b
itraversed__ = conjoined__ (wander traverse) (iwander itraverse)
{-# INLINE [0] itraversed__ #-}
{-# RULES
"itraversed__ -> wander traverse"
forall (o :: Star g j a b). itraversed__ o = wander traverse (reStar o)
:: TraversableWithIndex i f => Star g (i -> j) (f a) (f b)
"itraversed__ -> folded__"
forall (o :: Forget r j a b). itraversed__ o = folded__ (reForget o)
:: FoldableWithIndex i f => Forget r (i -> j) (f a) (f b)
"itraversed__ -> mapped__"
forall (o :: FunArrow j a b). itraversed__ o = mapped__ (reFunArrow o)
:: FunctorWithIndex i f => FunArrow (i -> j) (f a) (f b)
"itraversed__ -> itraverse"
forall (o :: IxStar g j a b). itraversed__ o = iwander itraverse o
:: TraversableWithIndex i f => IxStar g (i -> j) (f a) (f b)
"itraversed__ -> ifolded__"
forall (o :: IxForget r j a b). itraversed__ o = ifolded__ o
:: FoldableWithIndex i f => IxForget r (i -> j) (f a) (f b)
"itraversed__ -> imapped__"
forall (o :: IxFunArrow j a b). itraversed__ o = imapped__ o
:: FunctorWithIndex i f => IxFunArrow (i -> j) (f a) (f b)
#-}