Copyright | (C) 2012-2016 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
A ReifiedLens
or ReifiedTraversal
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 ReifiedLens
or ReifiedTraversal
into a data structure
according to the given Strategy
.
evalTraversable
=evalOf
traverse
=traverse
evalOf
=id
evalOf
::Lens'
s a ->Strategy
a ->Strategy
sevalOf
::Traversal'
s a ->Strategy
a ->Strategy
sevalOf
:: (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 ReifiedLens
or ReifiedTraversal
according into a
data structure according to a given Strategy
in parallel.
parTraversable
=parOf
traverse
parOf
::Lens'
s a ->Strategy
a ->Strategy
sparOf
::Traversal'
s a ->Strategy
a ->Strategy
sparOf
:: ((a ->Eval
a) -> s ->Eval
s) ->Strategy
a ->Strategy
s
after :: Strategy s -> LensLike f s t a b -> LensLike f s t a b Source #
Transform a ReifiedLens
, ReifiedFold
, ReifiedGetter
, ReifiedSetter
or ReifiedTraversal
to
first evaluates its argument according to a given Strategy
before proceeding.
after
rdeepseq
traverse
::Traversable
t =>Strategy
a ->Strategy
[a]
throughout :: Strategy s -> LensLike f s t a b -> LensLike f s t a b Source #
Transform a ReifiedLens
, ReifiedFold
, ReifiedGetter
, ReifiedSetter
or ReifiedTraversal
to
evaluate its argument according to a given Strategy
in parallel with evaluating.
throughout
rdeepseq
traverse
::Traversable
t =>Strategy
a ->Strategy
[a]