| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Control.Reference.Operators
Description
Common operators for using references.
There are four kinds of operator for every type of reference.
The operators are either getters (^. and ^?), setters (.= and !=),
monadic updaters (.~ and !~), pure updaters (.- and !-) or action performers (!|).
The former operators (with the dot) are pure operators, the later are monadic operators. For example, (1,2) ^. _1 results in a pure numeric value, while Right 4 ^? right produces Just 4 (or a higher level value representing Just 4).
- (^.) :: s -> Getter Identity s t a b -> a
- (^?) :: Monad m => s -> Getter m s t a b -> m a
- review :: Reference MU MU MU Identity s s a a -> a -> s
- (.=) :: Setter Identity s t a b -> b -> s -> t
- (!=) :: Setter m s t a b -> b -> s -> m t
- (.~) :: Setter Identity s t a b -> (a -> Identity b) -> s -> t
- (!~) :: Setter m s t a b -> (a -> m b) -> s -> m t
- (.-) :: Setter Identity s t a b -> (a -> b) -> s -> t
- (!-) :: Monad m => Setter m s t a b -> (a -> b) -> s -> m t
- (!|) :: Monad m => Setter m s s a a -> (a -> m c) -> s -> m s
Getters
review :: Reference MU MU MU Identity s s a a -> a -> s Source #
Gets the context from the referenced element by turning the reference.
Setters
Updaters
(.~) :: Setter Identity s t a b -> (a -> Identity b) -> s -> t infixl 4 Source #
Monadic updater with a pure result
Updaters with pure function inside
(.-) :: Setter Identity s t a b -> (a -> b) -> s -> t infixl 4 Source #
Pure updater with pure function
(!-) :: Monad m => Setter m s t a b -> (a -> b) -> s -> m t infixl 4 Source #
Monadic update with pure function