hgeometry-0.6.0.0: Geometric Algorithms, 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 # 

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 # 

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 # 

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 # 

Methods

pure :: a -> PersistentStateT s m a #

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

(*>) :: 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 #