lens-4.15.4: Lenses, Folds and Traversals

Copyright(C) 2012-16 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellTrustworthy
LanguageHaskell98

Control.Lens.Each

Contents

Description

 
Synopsis
  • class Each s t a b | s -> a, t -> b, s b -> t, t a -> s where

    Each

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

    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 Source #

    each :: (Traversable g, s ~ g a, t ~ g b) => Traversal s t a b Source #

    Instances
    ((~) * a Word8, (~) * b Word8) => Each ByteString ByteString a b Source #
    each :: Traversal ByteString ByteString Word8 Word8
    Instance details
    ((~) * a Word8, (~) * b Word8) => Each ByteString ByteString a b Source #
    each :: Traversal ByteString ByteString Word8 Word8
    Instance details
    ((~) * a Char, (~) * b Char) => Each Text Text a b Source #
    each :: Traversal Text Text Char Char
    Instance details

    Methods

    each :: Traversal Text Text a b Source #

    ((~) * a Char, (~) * b Char) => Each Text Text a b Source #
    each :: Traversal Text Text Char Char
    Instance details

    Methods

    each :: Traversal Text Text a b Source #

    Each [a] [b] a b Source #
    each :: Traversal [a] [b] a b
    Instance details

    Methods

    each :: Traversal [a] [b] a b Source #

    Each (Maybe a) (Maybe b) a b Source #
    each :: Traversal (Maybe a) (Maybe b) a b
    Instance details

    Methods

    each :: Traversal (Maybe a) (Maybe b) a b Source #

    Each (Complex a) (Complex b) a b Source #
    each :: (RealFloat a, RealFloat b) => Traversal (Complex a) (Complex b) a b
    Instance details

    Methods

    each :: Traversal (Complex a) (Complex b) a b Source #

    Each (NonEmpty a) (NonEmpty b) a b Source #
    each :: Traversal (NonEmpty a) (NonEmpty b) a b
    Instance details

    Methods

    each :: Traversal (NonEmpty a) (NonEmpty b) a b Source #

    Each (Identity a) (Identity b) a b Source #
    each :: Traversal (Identity a) (Identity b) a b
    Instance details

    Methods

    each :: Traversal (Identity a) (Identity b) a b Source #

    Each (IntMap a) (IntMap b) a b Source #
    each :: Traversal (Map c a) (Map c b) a b
    Instance details

    Methods

    each :: Traversal (IntMap a) (IntMap b) a b Source #

    Each (Tree a) (Tree b) a b Source #
    each :: Traversal (Tree a) (Tree b) a b
    Instance details

    Methods

    each :: Traversal (Tree a) (Tree b) a b Source #

    Each (Seq a) (Seq b) a b Source #
    each :: Traversal (Seq a) (Seq b) a b
    Instance details

    Methods

    each :: Traversal (Seq a) (Seq b) a b Source #

    (Unbox a, Unbox b) => Each (Vector a) (Vector b) a b Source #
    each :: (Unbox a, Unbox b) => Traversal (Vector a) (Vector b) a b
    Instance details

    Methods

    each :: Traversal (Vector a) (Vector b) a b Source #

    (Storable a, Storable b) => Each (Vector a) (Vector b) a b Source #
    each :: (Storable a, Storable b) => Traversal (Vector a) (Vector b) a b
    Instance details

    Methods

    each :: Traversal (Vector a) (Vector b) a b Source #

    (Prim a, Prim b) => Each (Vector a) (Vector b) a b Source #
    each :: (Prim a, Prim b) => Traversal (Vector a) (Vector b) a b
    Instance details

    Methods

    each :: Traversal (Vector a) (Vector b) a b Source #

    Each (Vector a) (Vector b) a b Source #
    each :: Traversal (Vector a) (Vector b) a b
    Instance details

    Methods

    each :: Traversal (Vector a) (Vector b) a b Source #

    ((~) * a a', (~) * b b') => Each (a, a') (b, b') a b Source #
    each :: Traversal (a,a) (b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a') (b, b') a b Source #

    (Ix i, IArray UArray a, IArray UArray b, (~) * i j) => Each (UArray i a) (UArray j b) a b Source #
    each :: (Ix i, IArray UArray a, IArray UArray b) => Traversal (Array i a) (Array i b) a b
    Instance details

    Methods

    each :: Traversal (UArray i a) (UArray j b) a b Source #

    (Ix i, (~) * i j) => Each (Array i a) (Array j b) a b Source #
    each :: Ix i => Traversal (Array i a) (Array i b) a b
    Instance details

    Methods

    each :: Traversal (Array i a) (Array j b) a b Source #

    (~) * c d => Each (Map c a) (Map d b) a b Source #
    each :: Traversal (Map c a) (Map c b) a b
    Instance details

    Methods

    each :: Traversal (Map c a) (Map d b) a b Source #

    (~) * c d => Each (HashMap c a) (HashMap d b) a b Source #
    each :: Traversal (HashMap c a) (HashMap c b) a b
    Instance details

    Methods

    each :: Traversal (HashMap c a) (HashMap d b) a b Source #

    ((~) * a a2, (~) * a a3, (~) * b b2, (~) * b b3) => Each (a, a2, a3) (b, b2, b3) a b Source #
    each :: Traversal (a,a,a) (b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3) (b, b2, b3) a b Source #

    ((~) * a a2, (~) * a a3, (~) * a a4, (~) * b b2, (~) * b b3, (~) * b b4) => Each (a, a2, a3, a4) (b, b2, b3, b4) a b Source #
    each :: Traversal (a,a,a,a) (b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4) (b, b2, b3, b4) a b Source #

    ((~) * 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 Source #
    each :: Traversal (a,a,a,a,a) (b,b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4, a5) (b, b2, b3, b4, b5) a b Source #

    ((~) * 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 Source #
    each :: Traversal (a,a,a,a,a,a) (b,b,b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4, a5, a6) (b, b2, b3, b4, b5, b6) a b Source #

    ((~) * 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 Source #
    each :: Traversal (a,a,a,a,a,a,a) (b,b,b,b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4, a5, a6, a7) (b, b2, b3, b4, b5, b6, b7) a b Source #

    ((~) * 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 Source #
    each :: Traversal (a,a,a,a,a,a,a,a) (b,b,b,b,b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4, a5, a6, a7, a8) (b, b2, b3, b4, b5, b6, b7, b8) a b Source #

    ((~) * 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 Source #
    each :: Traversal (a,a,a,a,a,a,a,a,a) (b,b,b,b,b,b,b,b,b) a b
    Instance details

    Methods

    each :: Traversal (a, a2, a3, a4, a5, a6, a7, a8, a9) (b, b2, b3, b4, b5, b6, b7, b8, b9) a b Source #