monad-state-0.2.0.3: Utility library for monads, particularly those involving state.

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Record

Synopsis

Documentation

maybeAbort :: Monad m => r -> Maybe a -> AbortT r m a Source

maybeAbortM :: (MonadTrans t, Monad m, MonadAbort (t m)) => AbortResultType (t m) -> MaybeT m a -> t m a Source

lensGS :: (f -> a) -> (a -> f -> f) -> f :-> a Source

Create a lens out of a getter and setter.

class MLens l a f where Source

Associated Types

type MLensA l a f Source

type MLensF l a f Source

Methods

toLens :: l f a -> MLensF l a f :-> Maybe (MLensA l a f) Source

Instances

MLens (:-->) a f 
MLens (Lens Total) (Maybe i -> Maybe i) (Maybe o -> Maybe o) 

newtype f :--> a Source

Constructors

MaybeLens 

Fields

unMaybeLens :: f :-> Maybe a
 

Instances

Category * (:-->) 
MLens (:-->) a f 
type MLensA (:-->) a f = a 
type MLensF (:-->) a f = f 

getM :: MonadState m => (StateType m :-> a) -> m a Source

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

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

getMAbort :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => r -> l f b -> (MLensA l b f :-> a) -> AbortT r m a Source

setMAbort :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => l f b -> (MLensA l b f :-> a) -> a -> m () Source

modMAbort :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => l f b -> (MLensA l b f :-> a) -> (a -> a) -> m () Source

askM :: MonadReader m => (EnvType m :-> a) -> m a Source

liftState :: MonadState m => (StateType m :-> s) -> StateT s m a -> m a Source

liftSubState :: (Monad m, MonadTrans t, MonadState (t m)) => (StateType (t m) :-> s) -> StateT s m a -> t m a Source

liftSubMaybeState :: (Monad m, MonadTrans t, MonadState (t m), MLens l b f, MLensF l b f ~ StateType (t m)) => l f b -> StateT (MLensA l b f) m a -> MaybeT (t m) a Source

(<:) :: (f :-> a) -> f -> a infixr 8 Source

(=:) :: (f :-> a) -> a -> f -> f infixr 5 Source

($:) :: (f :-> a) -> (a -> a) -> f -> f infixr 8 Source

(<::) :: MonadState m => (StateType m :-> a) -> m a infixr 8 Source

(=::) :: MonadState m => (StateType m :-> a) -> a -> m () infixr 5 Source

($::) :: MonadState m => (StateType m :-> a) -> (a -> a) -> m () infixr 8 Source

(<<:) :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => r -> l f b -> (MLensA l b f :-> a) -> AbortT r m a infixr 8 Source

(<=:) :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => l f b -> (MLensA l b f :-> a) -> a -> m () infixr 5 Source

(<$:) :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => l f b -> (MLensA l b f :-> a) -> (a -> a) -> m () infixr 8 Source

(<<::) :: (MonadState m, MLens l b f, MLensF l b f ~ StateType m) => l f b -> (MLensA l b f :-> a) -> AbortT () m a infixr 8 Source

(<->) :: (MLens l a f, MLens l' a' f', MLensA l a f ~ MLensF l' a' f') => l' f' a' -> l f a -> MLensF l a f :--> MLensA l' a' f' infixr 5 Source

(<:<) :: MonadReader m => (EnvType m :-> a) -> m a infixr 5 Source

(>$<) :: MonadState m => (StateType m :-> s) -> StateT s m a -> m a infixr 4 Source

(>$>) :: Monad m => (s :-> s') -> StateT s' m a -> StateT s m a infixr 5 Source

(>$$>) :: (Monad m, MonadTrans t, MonadState (t m), MLens l b f, MLensF l b f ~ StateType (t m)) => l f b -> StateT (MLensA l b f) m a -> MaybeT (t m) a infixr 4 Source

module Data.Label