crdt-7.0: Conflict-free replicated data types

Safe HaskellNone
LanguageHaskell2010

CRDT.LamportClock.Simulation

Contents

Synopsis

Lamport clock simulation

newtype LamportClockSimT s m a Source #

Lamport clock simulation. Key is Pid. Non-present value is equivalent to (0, initial).

Constructors

LamportClockSim (ExceptT String (RWST s () (Map Pid (ProcessState s)) m) a) 

Instances

newtype ProcessSimT s m a Source #

ProcessSim inside Lamport clock simulation.

Constructors

ProcessSim (ReaderT Pid (LamportClockSimT s m) a) 

Instances

Monad m => MonadState s (ProcessSimT s m) Source # 

Methods

get :: ProcessSimT s m s #

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

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

MonadTrans (ProcessSimT s) Source # 

Methods

lift :: Monad m => m a -> ProcessSimT s m a #

Monad m => Monad (ProcessSimT s m) Source # 

Methods

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

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

return :: a -> ProcessSimT s m a #

fail :: String -> ProcessSimT s m a #

Functor m => Functor (ProcessSimT s m) Source # 

Methods

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

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

Monad m => MonadFail (ProcessSimT s m) Source # 

Methods

fail :: String -> ProcessSimT s m a #

Monad m => Applicative (ProcessSimT s m) Source # 

Methods

pure :: a -> ProcessSimT s m a #

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

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

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

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

Monad m => Clock (ProcessSimT s m) Source # 
Monad m => Process (ProcessSimT s m) Source # 

Methods

getPid :: ProcessSimT s m Pid Source #