hgeometry-combinatorial-0.10.0.0: Data structures, and Data types.

Safe HaskellNone
LanguageHaskell2010

Control.Monad.State.Persistent

Synopsis

Documentation

data PersistentStateT s m a Source #

A State monad that can store earlier versions of the state.

Instances
Monad m => MonadState s (PersistentStateT s m) Source # 
Instance details

Defined in Control.Monad.State.Persistent

Methods

get :: PersistentStateT s m s #

put :: s -> PersistentStateT s m () #

state :: (s -> (a, s)) -> PersistentStateT s m a #

Monad m => Monad (PersistentStateT s m) Source # 
Instance details

Defined in Control.Monad.State.Persistent

Methods

(>>=) :: PersistentStateT s m a -> (a -> PersistentStateT s m b) -> PersistentStateT s m b #

(>>) :: PersistentStateT s m a -> PersistentStateT s m b -> PersistentStateT s m b #

return :: a -> PersistentStateT s m a #

fail :: String -> PersistentStateT s m a #

Functor m => Functor (PersistentStateT s m) Source # 
Instance details

Defined in Control.Monad.State.Persistent

Methods

fmap :: (a -> b) -> PersistentStateT s m a -> PersistentStateT s m b #

(<$) :: a -> PersistentStateT s m b -> PersistentStateT s m a #

Monad m => Applicative (PersistentStateT s m) Source # 
Instance details

Defined in Control.Monad.State.Persistent

Methods

pure :: a -> PersistentStateT s m a #

(<*>) :: PersistentStateT s m (a -> b) -> PersistentStateT s m a -> PersistentStateT s m b #

liftA2 :: (a -> b -> c) -> PersistentStateT s m a -> PersistentStateT s m b -> PersistentStateT s m c #

(*>) :: PersistentStateT s m a -> PersistentStateT s m b -> PersistentStateT s m b #

(<*) :: PersistentStateT s m a -> PersistentStateT s m b -> PersistentStateT s m a #

store :: Monad m => PersistentStateT s m () Source #

Create a snapshot of the current state and add it to the list of states that we store.

runPersistentStateT :: Functor m => PersistentStateT s m a -> s -> m (a, s, [s]) Source #

run a persistentStateT, returns a triplet with the value, the last state and a list of all states (including the last one) in chronological order

runPersistentState :: PersistentState s a -> s -> (a, s, [s]) Source #