deque-0.3: Double-ended queues

Safe HaskellNone
LanguageHaskell2010

Deque.Strict.State

Description

Strict Deque API lifted to a State monad, "mtl"-style.

Synopsis

Documentation

cons :: MonadState (Deque a) m => a -> m () Source #

O(1). Add element in the beginning.

snoc :: MonadState (Deque a) m => a -> m () Source #

O(1). Add element in the ending.

reverse :: MonadState (Deque a) m => m () Source #

O(1). Revert the deque.

shiftLeft :: MonadState (Deque a) m => m () Source #

O(1), occasionally O(n). Move the first element to the end.

shiftRight :: MonadState (Deque a) m => m () Source #

O(1), occasionally O(n). Move the last element to the beginning.

filter :: MonadState (Deque a) m => (a -> Bool) -> m () Source #

O(n). Leave only the elements satisfying the predicate.

takeWhile :: MonadState (Deque a) m => (a -> Bool) -> m () Source #

O(n). Leave only the first elements satisfying the predicate.

dropWhile :: MonadState (Deque a) m => (a -> Bool) -> m () Source #

O(n). Drop the first elements satisfying the predicate.

uncons :: MonadState (Deque a) m => m (Maybe a) Source #

O(1), occasionally O(n). Get the first element and deque without it if it's not empty.

unsnoc :: MonadState (Deque a) m => m (Maybe a) Source #

O(1), occasionally O(n). Get the last element and deque without it if it's not empty.

null :: MonadState (Deque a) m => m Bool Source #

O(1). Check whether deque is empty.

length :: MonadState (Deque a) m => m Int Source #

O(1). Check whether deque is empty.

head :: MonadState (Deque a) m => m (Maybe a) Source #

O(1), occasionally O(n). Get the first element if deque is not empty.

last :: MonadState (Deque a) m => m (Maybe a) Source #

O(1), occasionally O(n). Get the last element if deque is not empty.

tail :: MonadState (Deque a) m => m (Deque a) Source #

O(1), occasionally O(n). Keep all elements but the first one.

In case of empty deque returns an empty deque.

init :: MonadState (Deque a) m => m (Deque a) Source #

O(1), occasionally O(n). Keep all elements but the last one.

In case of empty deque returns an empty deque.