lens-2.7.0.1: Lenses, Folds and Traversals

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

Data.Monoid.Lens

Description

 

Synopsis

Documentation

(<>~) :: Monoid c => Setting a b c c -> c -> a -> bSource

Modify the target of a monoidally valued by mappending another value.

>>> :m + Control.Lens
>>> both <>~ "!!!" $ ("hello","world")
("hello!!!","world!!!")
 (<>~) :: Monoid c => Setter a b c c -> c -> a -> b
 (<>~) :: Monoid c => Iso a b c c -> c -> a -> b
 (<>~) :: Monoid c => Lens a b c c -> c -> a -> b
 (<>~) :: Monoid c => Traversal a b c c -> c -> a -> b

(<<>~) :: Monoid m => LensLike ((,) m) a b m m -> m -> a -> (m, b)Source

mappend a monoidal value onto the end of the target of a Lens and return the result

When you do not need the result of the operation, (<>~) is more flexible.

(<>=) :: (MonadState a m, Monoid b) => SimpleSetting a b -> b -> m ()Source

Modify the target(s) of a Simple Lens, Iso, Setter or Traversal by mappending a value.

 (<>=) :: (MonadState a m, Monoid b) => Simple Setter a b -> b -> m ()
 (<>=) :: (MonadState a m, Monoid b) => Simple Iso a b -> b -> m ()
 (<>=) :: (MonadState a m, Monoid b) => Simple Lens a b -> b -> m ()
 (<>=) :: (MonadState a m, Monoid b) => Simple Traversal a b -> b -> m ()

(<<>=) :: (MonadState a m, Monoid r) => SimpleLensLike ((,) r) a r -> r -> m rSource

mappend a monoidal value onto the end of the target of a Lens into your monad's state and return the result.

When you do not need the result of the operation, (<>=) is more flexible.

_dual :: Iso a b (Dual a) (Dual b)Source

Isomorphism for Dual

_endo :: Iso (a -> a) (b -> b) (Endo a) (Endo b)Source

Isomorphism for Endo

_all :: Simple Iso Bool AllSource

Isomorphism for All

>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _all foldMap [True,True]
True
>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _all foldMap [True,False]
False

_any :: Simple Iso Bool AnySource

Isomorphism for Any

>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _any foldMap [False,False]
False
>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _any foldMap [True,False]
True

_sum :: Iso a b (Sum a) (Sum b)Source

Isomorphism for Sum

>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _sum foldMap [1,2,3,4]
10

_product :: Iso a b (Product a) (Product b)Source

Isomorphism for Product

>>> :m + Control.Lens Data.Monoid.Lens Data.Foldable
>>> ala _product foldMap [1,2,3,4]
24

_first :: Iso (Maybe a) (Maybe b) (First a) (First b)Source

Isomorphism for First

_last :: Iso (Maybe a) (Maybe b) (Last a) (Last b)Source

Isomorphism for Last