lens-3.0.4: Lenses, Folds and Traversals

PortabilityRank2Types
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellNone

Control.Lens.Tuple

Contents

Description

 

Synopsis

Tuples

class Field1 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to 1st field of a tuple.

Methods

_1 :: Lens a b c dSource

Access the 1st field of a tuple (and possibly change its type).

>>> (1,2)^._1
1
>>> _1 .~ "hello" $ (1,2)
("hello",2)

This can also be used on larger tuples as well

>>> _1 +~ 41 $ (1,2,3,4,5)
(42,2,3,4,5)
 _1 :: Lens (a,b) (a',b) a a'
 _1 :: Lens (a,b,c) (a',b,c) a a'
 _1 :: Lens (a,b,c,d) (a',b,c,d) a a'
 ...
 _1 :: Lens (a,c,d,e,f,g,h,i) (a',b,c,d,e,f,g,h,i) a a'

Instances

Field1 (a, b) (a', b) a a' 
Field1 (a, b, c) (a', b, c) a a' 
Field1 (a, b, c, d) (a', b, c, d) a a' 
Field1 (a, b, c, d, e) (a', b, c, d, e) a a' 
Field1 (a, b, c, d, e, f) (a', b, c, d, e, f) a a' 
Field1 (a, b, c, d, e, f, g) (a', b, c, d, e, f, g) a a' 
Field1 (a, b, c, d, e, f, g, h) (a', b, c, d, e, f, g, h) a a' 
Field1 (a, b, c, d, e, f, g, h, i) (a', b, c, d, e, f, g, h, i) a a' 

class Field2 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to the 2nd field of a tuple

Methods

_2 :: Lens a b c dSource

Access the 2nd field of a tuple

>>> _2 .~ "hello" $ (1,(),3,4)
(1,"hello",3,4)
 anyOf _2 :: (c -> Bool) -> (a, c) -> Bool
 traverse . _2 :: (Applicative f, Traversable t) => (a -> f b) -> t (c, a) -> f (t (c, b))
 foldMapOf (traverse . _2) :: (Traversable t, Monoid m) => (c -> m) -> t (b, c) -> m

Instances

Field2 (a, b) (a, b') b b' 
Field2 (a, b, c) (a, b', c) b b' 
Field2 (a, b, c, d) (a, b', c, d) b b' 
Field2 (a, b, c, d, e) (a, b', c, d, e) b b' 
Field2 (a, b, c, d, e, f) (a, b', c, d, e, f) b b' 
Field2 (a, b, c, d, e, f, g) (a, b', c, d, e, f, g) b b' 
Field2 (a, b, c, d, e, f, g, h) (a, b', c, d, e, f, g, h) b b' 
Field2 (a, b, c, d, e, f, g, h, i) (a, b', c, d, e, f, g, h, i) b b' 

class Field3 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to the 3rd field of a tuple

Methods

_3 :: Lens a b c dSource

Access the 3rd field of a tuple

Instances

Field3 (a, b, c) (a, b, c') c c' 
Field3 (a, b, c, d) (a, b, c', d) c c' 
Field3 (a, b, c, d, e) (a, b, c', d, e) c c' 
Field3 (a, b, c, d, e, f) (a, b, c', d, e, f) c c' 
Field3 (a, b, c, d, e, f, g) (a, b, c', d, e, f, g) c c' 
Field3 (a, b, c, d, e, f, g, h) (a, b, c', d, e, f, g, h) c c' 
Field3 (a, b, c, d, e, f, g, h, i) (a, b, c', d, e, f, g, h, i) c c' 

class Field4 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provide access to the 4th field of a tuple

Methods

_4 :: Lens a b c dSource

Access the 4th field of a tuple

Instances

Field4 (a, b, c, d) (a, b, c, d') d d' 
Field4 (a, b, c, d, e) (a, b, c, d', e) d d' 
Field4 (a, b, c, d, e, f) (a, b, c, d', e, f) d d' 
Field4 (a, b, c, d, e, f, g) (a, b, c, d', e, f, g) d d' 
Field4 (a, b, c, d, e, f, g, h) (a, b, c, d', e, f, g, h) d d' 
Field4 (a, b, c, d, e, f, g, h, i) (a, b, c, d', e, f, g, h, i) d d' 

class Field5 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to the 5th field of a tuple

Methods

_5 :: Lens a b c dSource

Access the 5th field of a tuple

Instances

Field5 (a, b, c, d, e) (a, b, c, d, e') e e' 
Field5 (a, b, c, d, e, f) (a, b, c, d, e', f) e e' 
Field5 (a, b, c, d, e, f, g) (a, b, c, d, e', f, g) e e' 
Field5 (a, b, c, d, e, f, g, h) (a, b, c, d, e', f, g, h) e e' 
Field5 (a, b, c, d, e, f, g, h, i) (a, b, c, d, e', f, g, h, i) e e' 

class Field6 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to the 6th element of a tuple

Methods

_6 :: Lens a b c dSource

Access the 6th field of a tuple

Instances

Field6 (a, b, c, d, e, f) (a, b, c, d, e, f') f f' 
Field6 (a, b, c, d, e, f, g) (a, b, c, d, e, f', g) f f' 
Field6 (a, b, c, d, e, f, g, h) (a, b, c, d, e, f', g, h) f f' 
Field6 (a, b, c, d, e, f, g, h, i) (a, b, c, d, e, f', g, h, i) f f' 

class Field7 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provide access to the 7th field of a tuple

Methods

_7 :: Lens a b c dSource

Access the 7th field of a tuple

Instances

Field7 (a, b, c, d, e, f, g) (a, b, c, d, e, f, g') g g' 
Field7 (a, b, c, d, e, f, g, h) (a, b, c, d, e, f, g', h) g g' 
Field7 (a, b, c, d, e, f, g, h, i) (a, b, c, d, e, f, g', h, i) g g' 

class Field8 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provide access to the 8th field of a tuple

Methods

_8 :: Lens a b c dSource

Access the 8th field of a tuple

Instances

Field8 (a, b, c, d, e, f, g, h) (a, b, c, d, e, f, g, h') h h' 
Field8 (a, b, c, d, e, f, g, h, i) (a, b, c, d, e, f, g, h', i) h h' 

class Field9 a b c d | a -> c, b -> d, a d -> b, b c -> a whereSource

Provides access to the 9th field of a tuple

Methods

_9 :: Lens a b c dSource

Access the 9th field of a tuple

Instances

Field9 (a, b, c, d, e, f, g, h, i) (a, b, c, d, e, f, g, h, i') i i'