| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Monad.Changeset.Lens.Setter
Synopsis
- data SetterChange s a w = SetterChange {
- setterChangeSetter :: Setter' s a
- setterChangeChange :: w
- newtype SetterChangeset s a w = SetterChangeset {
- getSetterChangeset :: Seq (SetterChange s a w)
- setterChangeset :: Setter' s a -> w -> SetterChangeset s a w
- (|>~) :: MonadChangeset s (SetterChangeset s a w) m => Setter' s a -> w -> m ()
- (.|>~) :: MonadChangeset s (SetterChangeset s a (First a)) m => Setter' s a -> a -> m ()
Documentation
data SetterChange s a w Source #
A single change focussed through a setter.
A setter may be any of a variety of optics: A Lens, a Prism, a Traversal.
The change of type w has to apply to a,
which is a part of a bigger structure s.
It is paired with a setter, which allows it to act on that bigger structure.
If the bigger datastructure is indexed (it has an instance of Ixed or At),
then IxedChangeset or AtChangeset
are probably better choices, because these can be inspected and changed better.
Constructors
| SetterChange | |
Fields
| |
Instances
| Functor (SetterChange s a) Source # | |
Defined in Control.Monad.Changeset.Lens.Setter Methods fmap :: (a0 -> b) -> SetterChange s a a0 -> SetterChange s a b # (<$) :: a0 -> SetterChange s a b -> SetterChange s a a0 # | |
newtype SetterChangeset s a w Source #
A collection of SetterChanges, which are applied consecutively.
Constructors
| SetterChangeset | |
Fields
| |
Instances
| Monoid (SetterChangeset s a w) Source # | |
Defined in Control.Monad.Changeset.Lens.Setter Methods mempty :: SetterChangeset s a w # mappend :: SetterChangeset s a w -> SetterChangeset s a w -> SetterChangeset s a w # mconcat :: [SetterChangeset s a w] -> SetterChangeset s a w # | |
| Semigroup (SetterChangeset s a w) Source # | |
Defined in Control.Monad.Changeset.Lens.Setter Methods (<>) :: SetterChangeset s a w -> SetterChangeset s a w -> SetterChangeset s a w # sconcat :: NonEmpty (SetterChangeset s a w) -> SetterChangeset s a w # stimes :: Integral b => b -> SetterChangeset s a w -> SetterChangeset s a w # | |
| RightAction w a => RightAction (SetterChangeset s a w) s Source # | |
Defined in Control.Monad.Changeset.Lens.Setter Methods actRight :: s -> SetterChangeset s a w -> s # | |
setterChangeset :: Setter' s a -> w -> SetterChangeset s a w Source #
Create a SetterChangeset with a single change, focussing on a particular setter.
(|>~) :: MonadChangeset s (SetterChangeset s a w) m => Setter' s a -> w -> m () Source #
Change a value through a setter.
Essentially, this applies setterChangeset.
Example:
-- Increments the value through a lens someLens |>~ Increment
(.|>~) :: MonadChangeset s (SetterChangeset s a (First a)) m => Setter' s a -> a -> m () Source #