Portability | GHC only |
---|---|

Maintainer | Simon Meier <iridcode@gmail.com> |

Safe Haskell | None |

Extensions to the first-class labels (fclabels) package.

- nthL :: Int -> [a] :-> a
- imageL :: Ord k => k -> Map k v :-> v
- fstL :: (a, b) :-> a
- sndL :: (a, b) :-> b
- module Data.Label
- liftLA :: Applicative f => (a :-> b) -> f a :-> f b
- modA :: Applicative f => (a :-> b) -> (b -> f b) -> a -> f a
- askM :: MonadReader r m => (r :-> a) -> m a
- setM :: MonadState s m => (s :-> a) -> a -> m ()
- getM :: MonadState s m => (s :-> a) -> m a
- modM :: MonadState s m => (s :-> a) -> (a -> a) -> m ()
- (=:) :: MonadState s m => :-> s a -> a -> m ()

# Documentation

module Data.Label

# Labels and applicative functors

liftLA :: Applicative f => (a :-> b) -> f a :-> f bSource

Lift a label into an applicative functor.

modA :: Applicative f => (a :-> b) -> (b -> f b) -> a -> f aSource

Effectful modification of a labeled value.

# Labels and Monads

askM :: MonadReader r m => (r :-> a) -> m aSource

Get part of the state from a reader.

setM :: MonadState s m => (s :-> a) -> a -> m ()Source

Set some part of the state.

getM :: MonadState s m => (s :-> a) -> m aSource

Get some part of the state.

modM :: MonadState s m => (s :-> a) -> (a -> a) -> m ()Source

Modify some part of the state.

(=:) :: MonadState s m => :-> s a -> a -> m ()

Alias for `puts`

that reads like an assignment.