Safe Haskell | None |
---|---|
Language | Haskell2010 |
Provides combinators for the lens-based manipulation of state and context types provided by the fused-effects library, similar to those provided for mtl-based monad transformers.
Synopsis
- view :: forall r a sig m. Has (Reader r) sig m => Getting a r a -> m a
- views :: forall s a b sig m. Has (Reader s) sig m => Getting a s a -> (a -> b) -> m b
- use :: forall s a sig m. Has (State s) sig m => Getting a s a -> m a
- uses :: forall s a b f sig. Has (State s) sig f => Getting a s a -> (a -> b) -> f b
- assign :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> b -> m ()
- modifying :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> (a -> b) -> m ()
- (.=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> b -> m ()
- (?=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a (Maybe b) -> b -> m ()
- (%=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> (a -> b) -> m ()
- (<~) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> m b -> m ()
- (+=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m ()
- (-=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m ()
- (*=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m ()
- (//=) :: forall s a sig m. (Has (State s) sig m, Fractional a) => ASetter' s a -> a -> m ()
Reader accessors
view :: forall r a sig m. Has (Reader r) sig m => Getting a r a -> m a Source #
View the value pointed to by a Getter
, Lens
, Traversal
, or
Fold
corresponding to the Reader
context of the given monadic
carrier.
views :: forall s a b sig m. Has (Reader s) sig m => Getting a s a -> (a -> b) -> m b Source #
View a function of the value pointed to by a Getter
or Lens
,
or the result of folding over all the results of a Fold
or
Traversal
, when applied to the Reader
context of the given
monadic carrier.
This is slightly more general in lens itself, but should suffice for our purposes.
State getters/setters
use :: forall s a sig m. Has (State s) sig m => Getting a s a -> m a Source #
Extract the target of a Lens
or Getter
, or use a summary of a
Fold
or Traversal
that points to a monoidal value.
uses :: forall s a b f sig. Has (State s) sig f => Getting a s a -> (a -> b) -> f b Source #
Use a function of the target of a Lens
or Getter
in the
current state, or use a summary of a Fold
or Traversal
that
points to a monoidal value.
assign :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> b -> m () Source #
Replace the target of a Lens
(or all the targets of a Setter
or Traversal
) within the current monadic state, irrespective of
the old value.
This is a prefix version of .=
.
modifying :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> (a -> b) -> m () Source #
Map over the target of a Lens
, or all of the targets of a Setter
or Traversal
, in the current monadic state.
This is a prefix version of %=
.
Infix operators
(.=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> b -> m () infix 4 Source #
Replace the target of a Lens
(or all the targets of a Setter
or Traversal
) within the current monadic state, irrespective of
the old value.
This is an infix version of assign
.
(?=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a (Maybe b) -> b -> m () infix 4 Source #
Replace the target of a Lens or all of the targets of a Setter
or
Traversal
in our monadic state with Just a new value, irrespective
of the old.
(%=) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> (a -> b) -> m () infix 4 Source #
Map over the target of a Lens
, or all of the targets of a Setter
or Traversal
, in the current monadic state.
This is an infix version of modifying
.
(<~) :: forall s a b sig m. Has (State s) sig m => ASetter s s a b -> m b -> m () infixr 2 Source #
Run a monadic action, and set all of the targets of a Lens
, Setter
or Traversal
to its result.
Mathematical operators
(+=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m () infix 4 Source #
Modify the target(s) of a Lens
, Iso
, Setter
or Traversal
by adding a value.
(-=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m () infix 4 Source #
Modify the target(s) of a Lens
, Iso
, Setter
or Traversal
by subtracting a value.
(*=) :: forall s a sig m. (Has (State s) sig m, Num a) => ASetter' s a -> a -> m () infix 4 Source #
Modify the target(s) of a Lens
, Iso
, Setter
or Traversal
by subtracting a value.
(//=) :: forall s a sig m. (Has (State s) sig m, Fractional a) => ASetter' s a -> a -> m () infix 4 Source #
Modify the target(s) of a Lens
, Iso
, Setter
or Traversal
by dividing a value.