planet-mitchell-0.1.0: Planet Mitchell

Optic.Traversal

Contents

Synopsis

# Traversal

type Traversal s t a b = forall (f :: * -> *). Applicative f => (a -> f b) -> s -> f t #

A Traversal can be used directly as a Setter or a Fold (but not as a Lens) and provides the ability to both read and update multiple fields, subject to some relatively weak Traversal laws.

These have also been known as multilenses, but they have the signature and spirit of

traverse :: Traversable f => Traversal (f a) (f b) a b

and the more evocative name suggests their application.

Most of the time the Traversal you will want to use is just traverse, but you can also pass any Lens or Iso as a Traversal, and composition of a Traversal (or Lens or Iso) with a Traversal (or Lens or Iso) using (.) forms a valid Traversal.

The laws for a Traversal t follow from the laws for Traversable as stated in "The Essence of the Iterator Pattern".

t purepure
fmap (t f) . t g ≡ getCompose . t (Compose . fmap f . g)

One consequence of this requirement is that a Traversal needs to leave the same number of elements as a candidate for subsequent Traversal that it started with. Another testament to the strength of these laws is that the caveat expressed in section 5.5 of the "Essence of the Iterator Pattern" about exotic Traversable instances that traverse the same entry multiple times was actually already ruled out by the second law in that same paper!

type Traversal' s a = Traversal s s a a #

traverseOf :: LensLike f s t a b -> (a -> f b) -> s -> f t #

Map each element of a structure targeted by a Lens or Traversal, evaluate these actions from left to right, and collect the results.

This function is only provided for consistency, id is strictly more general.

>>> traverseOf each print (1,2,3)
1
2
3
((),(),())
traverseOfid
itraverseOf l ≡ traverseOf l . Indexed
itraverseOf itraverseditraverse

This yields the obvious law:

traversetraverseOf traverse
traverseOf :: Functor f     => Iso s t a b        -> (a -> f b) -> s -> f t
traverseOf :: Functor f     => Lens s t a b       -> (a -> f b) -> s -> f t
traverseOf :: Apply f       => Traversal1 s t a b -> (a -> f b) -> s -> f t
traverseOf :: Applicative f => Traversal s t a b  -> (a -> f b) -> s -> f t

forOf :: LensLike f s t a b -> s -> (a -> f b) -> f t #

A version of traverseOf with the arguments flipped, such that:

>>> forOf each (1,2,3) print
1
2
3
((),(),())

This function is only provided for consistency, flip is strictly more general.

forOfflip
forOfflip . traverseOf
forforOf traverse
ifor l s ≡ for l s . Indexed
forOf :: Functor f => Iso s t a b -> s -> (a -> f b) -> f t
forOf :: Functor f => Lens s t a b -> s -> (a -> f b) -> f t
forOf :: Applicative f => Traversal s t a b -> s -> (a -> f b) -> f t

sequenceAOf :: LensLike f s t (f b) b -> s -> f t #

Evaluate each action in the structure from left to right, and collect the results.

>>> sequenceAOf both ([1,2],[3,4])
[(1,3),(1,4),(2,3),(2,4)]
sequenceAsequenceAOf traversetraverse id
sequenceAOf l ≡ traverseOf l id ≡ l id
sequenceAOf :: Functor f => Iso s t (f b) b       -> s -> f t
sequenceAOf :: Functor f => Lens s t (f b) b      -> s -> f t
sequenceAOf :: Applicative f => Traversal s t (f b) b -> s -> f t

types :: HasTypes s a => Traversal' s a #

# Each

class Each s t a b | s -> a, t -> b, s b -> t, t a -> s where #

Extract each element of a (potentially monomorphic) container.

Notably, when applied to a tuple, this generalizes both to arbitrary homogeneous tuples.

>>> (1,2,3) & each *~ 10
(10,20,30)

It can also be used on monomorphic containers like Text or ByteString.

>>> over each Char.toUpper ("hello"^.Text.packed)
"HELLO"
>>> ("hello","world") & each.each %~ Char.toUpper
("HELLO","WORLD")

Methods

each :: Traversal s t a b #

Instances
 (a ~ Word8, b ~ Word8) => Each ByteString ByteString a b each :: Traversal ByteString ByteString Word8 Word8 Instance detailsDefined in Control.Lens.Each Methods (a ~ Word8, b ~ Word8) => Each ByteString ByteString a b each :: Traversal ByteString ByteString Word8 Word8 Instance detailsDefined in Control.Lens.Each Methods (a ~ Char, b ~ Char) => Each Text Text a b each :: Traversal Text Text Char Char Instance detailsDefined in Control.Lens.Each Methods (a ~ Char, b ~ Char) => Each Text Text a b each :: Traversal Text Text Char Char Instance detailsDefined in Control.Lens.Each Methods Each [a] [b] a b each :: Traversal [a] [b] a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal [a] [b] a b # Each (Maybe a) (Maybe b) a b each :: Traversal (Maybe a) (Maybe b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Maybe a) (Maybe b) a b # Each (Complex a) (Complex b) a b each :: (RealFloat a, RealFloat b) => Traversal (Complex a) (Complex b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Complex a) (Complex b) a b # Each (Identity a) (Identity b) a b each :: Traversal (Identity a) (Identity b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Identity a) (Identity b) a b # Each (NonEmpty a) (NonEmpty b) a b each :: Traversal (NonEmpty a) (NonEmpty b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (NonEmpty a) (NonEmpty b) a b # Each (IntMap a) (IntMap b) a b each :: Traversal (Map c a) (Map c b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (IntMap a) (IntMap b) a b # Each (Tree a) (Tree b) a b each :: Traversal (Tree a) (Tree b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Tree a) (Tree b) a b # Each (Seq a) (Seq b) a b each :: Traversal (Seq a) (Seq b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Seq a) (Seq b) a b # (Prim a, Prim b) => Each (Vector a) (Vector b) a b each :: (Prim a, Prim b) => Traversal (Vector a) (Vector b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Vector a) (Vector b) a b # (Storable a, Storable b) => Each (Vector a) (Vector b) a b each :: (Storable a, Storable b) => Traversal (Vector a) (Vector b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Vector a) (Vector b) a b # (Unbox a, Unbox b) => Each (Vector a) (Vector b) a b each :: (Unbox a, Unbox b) => Traversal (Vector a) (Vector b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Vector a) (Vector b) a b # Each (Vector a) (Vector b) a b each :: Traversal (Vector a) (Vector b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Vector a) (Vector b) a b # (a ~ a', b ~ b') => Each (a, a') (b, b') a b each :: Traversal (a,a) (b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a') (b, b') a b # c ~ d => Each (HashMap c a) (HashMap d b) a b each :: Traversal (HashMap c a) (HashMap c b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (HashMap c a) (HashMap d b) a b # c ~ d => Each (Map c a) (Map d b) a b each :: Traversal (Map c a) (Map c b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Map c a) (Map d b) a b # (Ix i, IArray UArray a, IArray UArray b, i ~ j) => Each (UArray i a) (UArray j b) a b each :: (Ix i, IArray UArray a, IArray UArray b) => Traversal (Array i a) (Array i b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (UArray i a) (UArray j b) a b # (Ix i, i ~ j) => Each (Array i a) (Array j b) a b each :: Ix i => Traversal (Array i a) (Array i b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Array i a) (Array j b) a b # (a ~ a2, a ~ a3, b ~ b2, b ~ b3) => Each (a, a2, a3) (b, b2, b3) a b each :: Traversal (a,a,a) (b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3) (b, b2, b3) a b # (a ~ a2, a ~ a3, a ~ a4, b ~ b2, b ~ b3, b ~ b4) => Each (a, a2, a3, a4) (b, b2, b3, b4) a b each :: Traversal (a,a,a,a) (b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4) (b, b2, b3, b4) a b # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, b ~ b2, b ~ b3, b ~ b4, b ~ b5) => Each (a, a2, a3, a4, a5) (b, b2, b3, b4, b5) a b each :: Traversal (a,a,a,a,a) (b,b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4, a5) (b, b2, b3, b4, b5) a b # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, b ~ b2, b ~ b3, b ~ b4, b ~ b5, b ~ b6) => Each (a, a2, a3, a4, a5, a6) (b, b2, b3, b4, b5, b6) a b each :: Traversal (a,a,a,a,a,a) (b,b,b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4, a5, a6) (b, b2, b3, b4, b5, b6) a b # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7, b ~ b2, b ~ b3, b ~ b4, b ~ b5, b ~ b6, b ~ b7) => Each (a, a2, a3, a4, a5, a6, a7) (b, b2, b3, b4, b5, b6, b7) a b each :: Traversal (a,a,a,a,a,a,a) (b,b,b,b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4, a5, a6, a7) (b, b2, b3, b4, b5, b6, b7) a b # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7, a ~ a8, b ~ b2, b ~ b3, b ~ b4, b ~ b5, b ~ b6, b ~ b7, b ~ b8) => Each (a, a2, a3, a4, a5, a6, a7, a8) (b, b2, b3, b4, b5, b6, b7, b8) a b each :: Traversal (a,a,a,a,a,a,a,a) (b,b,b,b,b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4, a5, a6, a7, a8) (b, b2, b3, b4, b5, b6, b7, b8) a b # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7, a ~ a8, a ~ a9, b ~ b2, b ~ b3, b ~ b4, b ~ b5, b ~ b6, b ~ b7, b ~ b8, b ~ b9) => Each (a, a2, a3, a4, a5, a6, a7, a8, a9) (b, b2, b3, b4, b5, b6, b7, b8, b9) a b each :: Traversal (a,a,a,a,a,a,a,a,a) (b,b,b,b,b,b,b,b,b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (a, a2, a3, a4, a5, a6, a7, a8, a9) (b, b2, b3, b4, b5, b6, b7, b8, b9) a b #

# Ixed

class Ixed m where #

Provides a simple Traversal lets you traverse the value at a given key in a Map or element at an ordinal position in a list or Seq.

Methods

ix :: Index m -> Traversal' m (IxValue m) #

NB: Setting the value of this Traversal will only set the value in at if it is already present.

If you want to be able to insert missing values, you want at.

>>> Seq.fromList [a,b,c,d] & ix 2 %~ f
fromList [a,b,f c,d]
>>> Seq.fromList [a,b,c,d] & ix 2 .~ e
fromList [a,b,e,d]
>>> Seq.fromList [a,b,c,d] ^? ix 2
Just c
>>> Seq.fromList [] ^? ix 2
Nothing
Instances
 Instance detailsDefined in Control.Lens.At Methods Instance detailsDefined in Control.Lens.At Methods Instance detailsDefined in Control.Lens.At Methods Instance detailsDefined in Control.Lens.At Methods Instance detailsDefined in Control.Lens.At Methods Ixed [a] Instance detailsDefined in Control.Lens.At Methodsix :: Index [a] -> Traversal' [a] (IxValue [a]) # Ixed (Maybe a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Maybe a) -> Traversal' (Maybe a) (IxValue (Maybe a)) # Ixed (Identity a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Identity a) -> Traversal' (Identity a) (IxValue (Identity a)) # Ixed (NonEmpty a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (NonEmpty a) -> Traversal' (NonEmpty a) (IxValue (NonEmpty a)) # Ixed (IntMap a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (IntMap a) -> Traversal' (IntMap a) (IxValue (IntMap a)) # Ixed (Tree a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Tree a) -> Traversal' (Tree a) (IxValue (Tree a)) # Ixed (Seq a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Seq a) -> Traversal' (Seq a) (IxValue (Seq a)) # Ord k => Ixed (Set k) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Set k) -> Traversal' (Set k) (IxValue (Set k)) # Prim a => Ixed (Vector a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Vector a) -> Traversal' (Vector a) (IxValue (Vector a)) # Storable a => Ixed (Vector a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Vector a) -> Traversal' (Vector a) (IxValue (Vector a)) # Unbox a => Ixed (Vector a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Vector a) -> Traversal' (Vector a) (IxValue (Vector a)) # (Eq k, Hashable k) => Ixed (HashSet k) Instance detailsDefined in Control.Lens.At Methodsix :: Index (HashSet k) -> Traversal' (HashSet k) (IxValue (HashSet k)) # Ixed (Vector a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Vector a) -> Traversal' (Vector a) (IxValue (Vector a)) # Eq e => Ixed (e -> a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (e -> a) -> Traversal' (e -> a) (IxValue (e -> a)) # a ~ a2 => Ixed (a, a2) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2) -> Traversal' (a, a2) (IxValue (a, a2)) # (Eq k, Hashable k) => Ixed (HashMap k a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (HashMap k a) -> Traversal' (HashMap k a) (IxValue (HashMap k a)) # Ord k => Ixed (Map k a) Instance detailsDefined in Control.Lens.At Methodsix :: Index (Map k a) -> Traversal' (Map k a) (IxValue (Map k a)) # (IArray UArray e, Ix i) => Ixed (UArray i e) arr ! i ≡ arr ^. ix i arr // [(i,e)] ≡ ix i .~ e $arr Instance detailsDefined in Control.Lens.At Methodsix :: Index (UArray i e) -> Traversal' (UArray i e) (IxValue (UArray i e)) # Ix i => Ixed (Array i e) arr ! i ≡ arr ^. ix i arr // [(i,e)] ≡ ix i .~ e$ arr Instance detailsDefined in Control.Lens.At Methodsix :: Index (Array i e) -> Traversal' (Array i e) (IxValue (Array i e)) # (Eq k, Hashable k) => Ixed (InsOrdHashMap k v) Instance detailsDefined in Data.HashMap.Strict.InsOrd Methodsix :: Index (InsOrdHashMap k v) -> Traversal' (InsOrdHashMap k v) (IxValue (InsOrdHashMap k v)) # (a ~ a2, a ~ a3) => Ixed (a, a2, a3) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3) -> Traversal' (a, a2, a3) (IxValue (a, a2, a3)) # (a ~ a2, a ~ a3, a ~ a4) => Ixed (a, a2, a3, a4) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4) -> Traversal' (a, a2, a3, a4) (IxValue (a, a2, a3, a4)) # (a ~ a2, a ~ a3, a ~ a4, a ~ a5) => Ixed (a, a2, a3, a4, a5) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4, a5) -> Traversal' (a, a2, a3, a4, a5) (IxValue (a, a2, a3, a4, a5)) # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6) => Ixed (a, a2, a3, a4, a5, a6) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4, a5, a6) -> Traversal' (a, a2, a3, a4, a5, a6) (IxValue (a, a2, a3, a4, a5, a6)) # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7) => Ixed (a, a2, a3, a4, a5, a6, a7) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4, a5, a6, a7) -> Traversal' (a, a2, a3, a4, a5, a6, a7) (IxValue (a, a2, a3, a4, a5, a6, a7)) # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7, a ~ a8) => Ixed (a, a2, a3, a4, a5, a6, a7, a8) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4, a5, a6, a7, a8) -> Traversal' (a, a2, a3, a4, a5, a6, a7, a8) (IxValue (a, a2, a3, a4, a5, a6, a7, a8)) # (a ~ a2, a ~ a3, a ~ a4, a ~ a5, a ~ a6, a ~ a7, a ~ a8, a ~ a9) => Ixed (a, a2, a3, a4, a5, a6, a7, a8, a9) Instance detailsDefined in Control.Lens.At Methodsix :: Index (a, a2, a3, a4, a5, a6, a7, a8, a9) -> Traversal' (a, a2, a3, a4, a5, a6, a7, a8, a9) (IxValue (a, a2, a3, a4, a5, a6, a7, a8, a9)) #

type family Index s :: * #

Instances
 type Index ByteString Instance detailsDefined in Control.Lens.At type Index ByteString = Int type Index ByteString Instance detailsDefined in Control.Lens.At type Index ByteString = Int64 type Index Text Instance detailsDefined in Control.Lens.At type Index Text = Int type Index Value Instance detailsDefined in Data.Aeson.Lens type Index Value = Text type Index Text Instance detailsDefined in Control.Lens.At type Index Text = Int64 type Index IntSet Instance detailsDefined in Control.Lens.At type Index IntSet = Int type Index [a] Instance detailsDefined in Control.Lens.At type Index [a] = Int type Index (Maybe a) Instance detailsDefined in Control.Lens.At type Index (Maybe a) = () type Index (Complex a) Instance detailsDefined in Control.Lens.At type Index (Complex a) = Int type Index (Identity a) Instance detailsDefined in Control.Lens.At type Index (Identity a) = () type Index (NonEmpty a) Instance detailsDefined in Control.Lens.At type Index (NonEmpty a) = Int type Index (IntMap a) Instance detailsDefined in Control.Lens.At type Index (IntMap a) = Int type Index (Tree a) Instance detailsDefined in Control.Lens.At type Index (Tree a) = [Int] type Index (Seq a) Instance detailsDefined in Control.Lens.At type Index (Seq a) = Int type Index (Set a) Instance detailsDefined in Control.Lens.At type Index (Set a) = a type Index (Vector a) Instance detailsDefined in Control.Lens.At type Index (Vector a) = Int type Index (Vector a) Instance detailsDefined in Control.Lens.At type Index (Vector a) = Int type Index (Vector a) Instance detailsDefined in Control.Lens.At type Index (Vector a) = Int type Index (HashSet a) Instance detailsDefined in Control.Lens.At type Index (HashSet a) = a type Index (Vector a) Instance detailsDefined in Control.Lens.At type Index (Vector a) = Int type Index (e -> a) Instance detailsDefined in Control.Lens.At type Index (e -> a) = e type Index (a, b) Instance detailsDefined in Control.Lens.At type Index (a, b) = Int type Index (HashMap k a) Instance detailsDefined in Control.Lens.At type Index (HashMap k a) = k type Index (Map k a) Instance detailsDefined in Control.Lens.At type Index (Map k a) = k type Index (UArray i e) Instance detailsDefined in Control.Lens.At type Index (UArray i e) = i type Index (Array i e) Instance detailsDefined in Control.Lens.At type Index (Array i e) = i type Index (InsOrdHashMap k v) Instance detailsDefined in Data.HashMap.Strict.InsOrd type Index (InsOrdHashMap k v) = k type Index (a, b, c) Instance detailsDefined in Control.Lens.At type Index (a, b, c) = Int type Index (a, b, c, d) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d) = Int type Index (a, b, c, d, e) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d, e) = Int type Index (a, b, c, d, e, f) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d, e, f) = Int type Index (a, b, c, d, e, f, g) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d, e, f, g) = Int type Index (a, b, c, d, e, f, g, h) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d, e, f, g, h) = Int type Index (a, b, c, d, e, f, g, h, i) Instance detailsDefined in Control.Lens.At type Index (a, b, c, d, e, f, g, h, i) = Int

type family IxValue m :: * #

This provides a common notion of a value at an index that is shared by both Ixed and At.

Instances
 Instance detailsDefined in Control.Lens.At Instance detailsDefined in Control.Lens.At type IxValue Text Instance detailsDefined in Control.Lens.At type IxValue Text = Char type IxValue Value Instance detailsDefined in Data.Aeson.Lens type IxValue Value = Value type IxValue Text Instance detailsDefined in Control.Lens.At type IxValue Text = Char type IxValue IntSet Instance detailsDefined in Control.Lens.At type IxValue IntSet = () type IxValue [a] Instance detailsDefined in Control.Lens.At type IxValue [a] = a type IxValue (Maybe a) Instance detailsDefined in Control.Lens.At type IxValue (Maybe a) = a type IxValue (Identity a) Instance detailsDefined in Control.Lens.At type IxValue (Identity a) = a type IxValue (NonEmpty a) Instance detailsDefined in Control.Lens.At type IxValue (NonEmpty a) = a type IxValue (IntMap a) Instance detailsDefined in Control.Lens.At type IxValue (IntMap a) = a type IxValue (Tree a) Instance detailsDefined in Control.Lens.At type IxValue (Tree a) = a type IxValue (Seq a) Instance detailsDefined in Control.Lens.At type IxValue (Seq a) = a type IxValue (Set k) Instance detailsDefined in Control.Lens.At type IxValue (Set k) = () type IxValue (Vector a) Instance detailsDefined in Control.Lens.At type IxValue (Vector a) = a type IxValue (Vector a) Instance detailsDefined in Control.Lens.At type IxValue (Vector a) = a type IxValue (Vector a) Instance detailsDefined in Control.Lens.At type IxValue (Vector a) = a type IxValue (HashSet k) Instance detailsDefined in Control.Lens.At type IxValue (HashSet k) = () type IxValue (Vector a) Instance detailsDefined in Control.Lens.At type IxValue (Vector a) = a type IxValue (e -> a) Instance detailsDefined in Control.Lens.At type IxValue (e -> a) = a type IxValue (a, a2) Instance detailsDefined in Control.Lens.At type IxValue (a, a2) = a type IxValue (HashMap k a) Instance detailsDefined in Control.Lens.At type IxValue (HashMap k a) = a type IxValue (Map k a) Instance detailsDefined in Control.Lens.At type IxValue (Map k a) = a type IxValue (UArray i e) Instance detailsDefined in Control.Lens.At type IxValue (UArray i e) = e type IxValue (Array i e) Instance detailsDefined in Control.Lens.At type IxValue (Array i e) = e type IxValue (InsOrdHashMap k v) Instance detailsDefined in Data.HashMap.Strict.InsOrd type IxValue (InsOrdHashMap k v) = v type IxValue (a, a2, a3) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3) = a type IxValue (a, a2, a3, a4) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4) = a type IxValue (a, a2, a3, a4, a5) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4, a5) = a type IxValue (a, a2, a3, a4, a5, a6) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4, a5, a6) = a type IxValue (a, a2, a3, a4, a5, a6, a7) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4, a5, a6, a7) = a type IxValue (a, a2, a3, a4, a5, a6, a7, a8) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4, a5, a6, a7, a8) = a type IxValue (a, a2, a3, a4, a5, a6, a7, a8, a9) Instance detailsDefined in Control.Lens.At type IxValue (a, a2, a3, a4, a5, a6, a7, a8, a9) = a