Copyright | (C) 2012-2014 Edward Kmett |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Stability | provisional |

Portability | portable |

Safe Haskell | Trustworthy |

Language | Haskell98 |

A `Lens`

or `Traversal`

can be used to take the role of `Traversable`

in
`Control.Parallel.Strategies`

, enabling those combinators to work with
monomorphic containers.

# Documentation

evalOf :: LensLike' Eval s a -> Strategy a -> Strategy s Source

Evaluate the targets of a `Lens`

or `Traversal`

into a data structure
according to the given `Strategy`

.

`evalTraversable`

=`evalOf`

`traverse`

=`traverse`

`evalOf`

=`id`

`evalOf`

::`Lens'`

s a ->`Strategy`

a ->`Strategy`

s`evalOf`

::`Traversal'`

s a ->`Strategy`

a ->`Strategy`

s`evalOf`

:: (a ->`Eval`

a) -> s ->`Eval`

s) ->`Strategy`

a ->`Strategy`

s

parOf :: LensLike' Eval s a -> Strategy a -> Strategy s Source

Evaluate the targets of a `Lens`

or `Traversal`

according into a
data structure according to a given `Strategy`

in parallel.

`parTraversable`

=`parOf`

`traverse`

`parOf`

::`Lens'`

s a ->`Strategy`

a ->`Strategy`

s`parOf`

::`Traversal'`

s a ->`Strategy`

a ->`Strategy`

s`parOf`

:: ((a ->`Eval`

a) -> s ->`Eval`

s) ->`Strategy`

a ->`Strategy`

s

throughout :: Strategy s -> LensLike f s t a b -> LensLike f s t a b Source

Transform a `Lens`

, `Fold`

, `Getter`

, `Setter`

or `Traversal`

to
evaluate its argument according to a given `Strategy`

*in parallel with* evaluating.

`throughout`

`rdeepseq`

`traverse`

::`Traversable`

t =>`Strategy`

a ->`Strategy`

[a]