seqid-0.6.3: Sequence ID production and consumption
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.SequenceId

Contents

Synopsis

Documentation

checkSeqId Source #

Arguments

:: Integral s 
=> s

Last sequence ID

-> s

Current sequence ID

-> Maybe (SequenceIdError s) 

If the difference between the sequence IDs is not 1 then the appropriate error is returned.

incrementSeqId Source #

Arguments

:: Integral s 
=> s

Last sequence ID

-> s

Next sequence ID

Increment to the next sequense ID

Monadic

checkSeqIdM Source #

Arguments

:: (Integral s, Monad m) 
=> s

Current sequence ID

-> SequenceIdT s m (Maybe (SequenceIdError s)) 

If the current sequence ID is greater than 1 more than the last sequence ID then the appropriate error is returned.

incrementSeqIdM Source #

Arguments

:: (Monad m, Integral s) 
=> SequenceIdT s m s

Next sequence ID

Update to the next sequense ID

lastSeqIdM Source #

Arguments

:: Monad m 
=> SequenceIdT s m s

Last sequence ID

Last seen sequense ID

newtype SequenceIdT s m a Source #

Constructors

SequenceIdT 

Fields

Instances

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

Defined in Data.SequenceId

Methods

get :: SequenceIdT s m s #

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

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

MonadTrans (SequenceIdT s) Source # 
Instance details

Defined in Data.SequenceId

Methods

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

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

Defined in Data.SequenceId

Methods

pure :: a -> SequenceIdT s m a #

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

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

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

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

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

Defined in Data.SequenceId

Methods

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

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

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

Defined in Data.SequenceId

Methods

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

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

return :: a -> SequenceIdT s m a #

runSequenceIdT :: Monad m => SequenceIdT s m b -> s -> m (b, s) Source #

execSequenceIdT :: Monad m => SequenceIdT s m b -> s -> m s Source #

evalSequenceIdT :: Monad m => SequenceIdT s m b -> s -> m b Source #

Types

data SequenceIdError a Source #

Constructors

SequenceIdError 

Instances

Instances details
Show a => Show (SequenceIdError a) Source # 
Instance details

Defined in Data.SequenceId

Eq a => Eq (SequenceIdError a) Source # 
Instance details

Defined in Data.SequenceId