Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Ref m a = MkRef {}
- refModify :: Monad m => Ref m a -> (a -> a) -> m ()
- refModifyM :: Monad m => Ref m a -> (a -> m a) -> m ()
- refRestore :: (MonadUnliftIO m, MonadException m) => Ref m a -> m --> m
- lensMapRef :: forall m a b. Monad m => Lens' a b -> Ref m a -> Ref m b
- liftRef :: (MonadTrans t, Monad m) => Ref m --> Ref (t m)
- stateRef :: Monad m => Ref (StateT s m) s
- refRunState :: Monad m => Ref m s -> StateT s m --> m
- ioRef :: IORef a -> Ref IO a
- strictSTRef :: STRef s a -> Ref (ST s) a
- lazySTRef :: STRef s a -> Ref (ST s) a
- refParam :: forall m a. (MonadUnliftIO m, MonadException m) => Ref m a -> Param m a
- refProd :: forall m a. (MonadUnliftIO m, MonadException m, Monoid a) => Ref m a -> Prod m a
Documentation
A reference of a monad (as in StateT
).
Instances
Functor m => Invariant (Ref m) Source # | |
Defined in Control.Monad.Ology.Data.Ref | |
Applicative m => Productable (Ref m) Source # | |
refModifyM :: Monad m => Ref m a -> (a -> m a) -> m () Source #
refRestore :: (MonadUnliftIO m, MonadException m) => Ref m a -> m --> m Source #
Restore the original value of this reference after the operation.
refRunState :: Monad m => Ref m s -> StateT s m --> m Source #
Run a state monad over this reference.
refParam :: forall m a. (MonadUnliftIO m, MonadException m) => Ref m a -> Param m a Source #
Use a reference as a parameter.
refProd :: forall m a. (MonadUnliftIO m, MonadException m, Monoid a) => Ref m a -> Prod m a Source #
Use a reference as a product.