Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
A cut-down implementation of lenses, with names taken from Edward Kmett's lens package.
- type Lens' i o = forall f. Functor f => (i -> f i) -> o -> f o
- lFst :: Lens' a (a, b)
- lSnd :: Lens' b (a, b)
- (^.) :: o -> Lens' i o -> i
- set :: Lens' i o -> i -> o -> o
- over :: Lens' i o -> (i -> i) -> o -> o
- use :: MonadState o m => Lens' i o -> m i
- (.=) :: MonadState o m => Lens' i o -> i -> m ()
- (%=) :: MonadState o m => Lens' i o -> (i -> i) -> m ()
- (%==) :: MonadState o m => Lens' i o -> (i -> m i) -> m ()
- (%%=) :: MonadState o m => Lens' i o -> (i -> m (i, r)) -> m r
- view :: MonadReader o m => Lens' i o -> m i
- locally :: MonadReader o m => Lens' i o -> (i -> i) -> m a -> m a
- key :: Ord k => k -> Lens' (Maybe v) (Map k v)
- (<&>) :: Functor m => m a -> (a -> b) -> m b
Type-preserving lenses.
type Lens' i o = forall f. Functor f => (i -> f i) -> o -> f o Source #
Van Laarhoven style homogeneous lenses. Mnemoic: "Lens inner outer".
Some simple lenses.
Elementary lens operations.
(^.) :: o -> Lens' i o -> i infixl 8 Source #
Get inner part i
of structure o
as designated by Lens' i o
.
over :: Lens' i o -> (i -> i) -> o -> o Source #
Modify inner part i
of structure o
using a function i -> i
.
State accessors and modifiers.
(%==) :: MonadState o m => Lens' i o -> (i -> m i) -> m () infix 4 Source #
Modify a part of the state monadically.
(%%=) :: MonadState o m => Lens' i o -> (i -> m (i, r)) -> m r infix 4 Source #
Modify a part of the state monadically, and return some result.