Safe Haskell | None |
---|---|
Language | Haskell2010 |
Various typeclasses for mutable containers.
Documentation
class MutableContainer c Source
MutableContainer (IORef a) | |
MutableContainer (STRef s a) | |
MutableContainer (MutVar s a) | |
MutableContainer (URef s a) | |
MutableContainer (DList s a) | |
MutableContainer (SRef s a) | |
MutableContainer (Deque v s a) |
class MutableContainer c => MutableRef c where Source
type RefElement c Source
newRef :: (PrimMonad m, PrimState m ~ MCState c) => RefElement c -> m c Source
readRef :: (PrimMonad m, PrimState m ~ MCState c) => c -> m (RefElement c) Source
writeRef :: (PrimMonad m, PrimState m ~ MCState c) => c -> RefElement c -> m () Source
modifyRef :: (PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> RefElement c) -> m () Source
modifyRef' :: (PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> RefElement c) -> m () Source
MutableRef (IORef a) | |
MutableRef (STRef s a) | |
MutableRef (MutVar s a) | |
Unbox a => MutableRef (URef s a) | |
Storable a => MutableRef (SRef s a) |
class MutableRef c => MutableAtomicRef c where Source
atomicModifyRef :: (PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> (RefElement c, a)) -> m a Source
atomicModifyRef' :: (PrimMonad m, PrimState m ~ MCState c) => c -> (RefElement c -> (RefElement c, a)) -> m a Source
MutableAtomicRef (IORef a) | |
MutableAtomicRef (MutVar s a) |
class MutableContainer c => MutableCollection c where Source
type CollElement c Source
Monoid w => MutableCollection (IORef w) | |
Monoid w => MutableCollection (STRef s w) | |
Monoid w => MutableCollection (MutVar s w) | |
MutableCollection (DList s a) | |
MVector v a => MutableCollection (Deque v s a) |
class MutableCollection c => MutablePopFront c where Source
popFront :: (PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c)) Source
IsSequence a => MutablePopFront (IORef a) | |
IsSequence a => MutablePopFront (STRef s a) | |
IsSequence a => MutablePopFront (MutVar s a) | |
MutablePopFront (DList s a) | |
MVector v a => MutablePopFront (Deque v s a) |
popFrontRef :: (PrimMonad m, PrimState m ~ MCState c, MutableRef c, CollElement c ~ Element (RefElement c), IsSequence (RefElement c)) => c -> m (Maybe (CollElement c)) Source
class MutableCollection c => MutablePushFront c where Source
pushFront :: (PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m () Source
IsSequence a => MutablePushFront (IORef a) | |
IsSequence a => MutablePushFront (STRef s a) | |
IsSequence a => MutablePushFront (MutVar s a) | |
MutablePushFront (DList s a) | |
MVector v a => MutablePushFront (Deque v s a) |
pushFrontRef :: (PrimMonad m, PrimState m ~ MCState c, MutableRef c, CollElement c ~ Element (RefElement c), IsSequence (RefElement c)) => c -> CollElement c -> m () Source
class MutableCollection c => MutablePopBack c where Source
popBack :: (PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c)) Source
IsSequence a => MutablePopBack (IORef a) | |
IsSequence a => MutablePopBack (STRef s a) | |
IsSequence a => MutablePopBack (MutVar s a) | |
MutablePopBack (DList s a) | |
MVector v a => MutablePopBack (Deque v s a) |
popBackRef :: (PrimMonad m, PrimState m ~ MCState c, MutableRef c, CollElement c ~ Element (RefElement c), IsSequence (RefElement c)) => c -> m (Maybe (CollElement c)) Source
class MutableCollection c => MutablePushBack c where Source
pushBack :: (PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m () Source
IsSequence a => MutablePushBack (IORef a) | |
IsSequence a => MutablePushBack (STRef s a) | |
IsSequence a => MutablePushBack (MutVar s a) | |
MutablePushBack (DList s a) | |
MVector v a => MutablePushBack (Deque v s a) |
pushBackRef :: (PrimMonad m, PrimState m ~ MCState c, MutableRef c, CollElement c ~ Element (RefElement c), IsSequence (RefElement c)) => c -> CollElement c -> m () Source
type MutableQueue c = (MutablePopFront c, MutablePushBack c) Source
type MutableStack c = (MutablePopFront c, MutablePushFront c) Source
type MutableDeque c = (MutableQueue c, MutablePushFront c, MutablePopBack c) Source