lens-4.17.1: Lenses, Folds and Traversals

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

Control.Lens.Internal.Fold

Contents

Description

 
Synopsis

Monoids for folding

newtype Folding f a Source #

Constructors

Folding 

Fields

Instances
(Contravariant f, Applicative f) => Semigroup (Folding f a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Folding f a -> Folding f a -> Folding f a #

sconcat :: NonEmpty (Folding f a) -> Folding f a #

stimes :: Integral b => b -> Folding f a -> Folding f a #

(Contravariant f, Applicative f) => Monoid (Folding f a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Folding f a #

mappend :: Folding f a -> Folding f a -> Folding f a #

mconcat :: [Folding f a] -> Folding f a #

newtype Traversed a f Source #

Used internally by traverseOf_ and the like.

The argument a of the result should not be used!

Constructors

Traversed 

Fields

Instances
Applicative f => Semigroup (Traversed a f) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Traversed a f -> Traversed a f -> Traversed a f #

sconcat :: NonEmpty (Traversed a f) -> Traversed a f #

stimes :: Integral b => b -> Traversed a f -> Traversed a f #

Applicative f => Monoid (Traversed a f) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Traversed a f #

mappend :: Traversed a f -> Traversed a f -> Traversed a f #

mconcat :: [Traversed a f] -> Traversed a f #

newtype TraversedF a f Source #

Used internally by traverse1Of_ and the like.

Since: 4.16

Constructors

TraversedF 

Fields

Instances
Apply f => Semigroup (TraversedF a f) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: TraversedF a f -> TraversedF a f -> TraversedF a f #

sconcat :: NonEmpty (TraversedF a f) -> TraversedF a f #

stimes :: Integral b => b -> TraversedF a f -> TraversedF a f #

(Apply f, Applicative f) => Monoid (TraversedF a f) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: TraversedF a f #

mappend :: TraversedF a f -> TraversedF a f -> TraversedF a f #

mconcat :: [TraversedF a f] -> TraversedF a f #

newtype Sequenced a m Source #

Used internally by mapM_ and the like.

The argument a of the result should not be used!

See 4.16 Changelog entry for the explanation of "why not Apply f =>"?

Constructors

Sequenced 

Fields

Instances
Monad m => Semigroup (Sequenced a m) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Sequenced a m -> Sequenced a m -> Sequenced a m #

sconcat :: NonEmpty (Sequenced a m) -> Sequenced a m #

stimes :: Integral b => b -> Sequenced a m -> Sequenced a m #

Monad m => Monoid (Sequenced a m) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Sequenced a m #

mappend :: Sequenced a m -> Sequenced a m -> Sequenced a m #

mconcat :: [Sequenced a m] -> Sequenced a m #

data Max a Source #

Used for maximumOf.

Constructors

NoMax 
Max a 
Instances
Ord a => Semigroup (Max a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Max a -> Max a -> Max a #

sconcat :: NonEmpty (Max a) -> Max a #

stimes :: Integral b => b -> Max a -> Max a #

Ord a => Monoid (Max a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Max a #

mappend :: Max a -> Max a -> Max a #

mconcat :: [Max a] -> Max a #

getMax :: Max a -> Maybe a Source #

Obtain the maximum.

data Min a Source #

Used for minimumOf.

Constructors

NoMin 
Min a 
Instances
Ord a => Semigroup (Min a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Min a -> Min a -> Min a #

sconcat :: NonEmpty (Min a) -> Min a #

stimes :: Integral b => b -> Min a -> Min a #

Ord a => Monoid (Min a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Min a #

mappend :: Min a -> Min a -> Min a #

mconcat :: [Min a] -> Min a #

getMin :: Min a -> Maybe a Source #

Obtain the minimum.

data Leftmost a Source #

Used for firstOf.

Constructors

LPure 
LLeaf a 
LStep (Leftmost a) 
Instances
Semigroup (Leftmost a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Leftmost a -> Leftmost a -> Leftmost a #

sconcat :: NonEmpty (Leftmost a) -> Leftmost a #

stimes :: Integral b => b -> Leftmost a -> Leftmost a #

Monoid (Leftmost a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

mempty :: Leftmost a #

mappend :: Leftmost a -> Leftmost a -> Leftmost a #

mconcat :: [Leftmost a] -> Leftmost a #

getLeftmost :: Leftmost a -> Maybe a Source #

Extract the Leftmost element. This will fairly eagerly determine that it can return Just the moment it sees any element at all.

data Rightmost a Source #

Used for lastOf.

Constructors

RPure 
RLeaf a 
RStep (Rightmost a) 
Instances
Semigroup (Rightmost a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

Methods

(<>) :: Rightmost a -> Rightmost a -> Rightmost a #

sconcat :: NonEmpty (Rightmost a) -> Rightmost a #

stimes :: Integral b => b -> Rightmost a -> Rightmost a #

Monoid (Rightmost a) Source # 
Instance details

Defined in Control.Lens.Internal.Fold

getRightmost :: Rightmost a -> Maybe a Source #

Extract the Rightmost element. This will fairly eagerly determine that it can return Just the moment it sees any element at all.

data ReifiedMonoid a #

Constructors

ReifiedMonoid 

Fields

Semigroups for folding

newtype NonEmptyDList a Source #

Constructors

NonEmptyDList 

Fields