| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Mutable.Class
Description
Various typeclasses for mutable containers.
Documentation
class MutableContainer c Source
Instances
| 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
Associated Types
type RefElement c Source
Methods
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
Instances
| 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
Methods
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
Instances
| MutableAtomicRef (IORef a) | |
| MutableAtomicRef (MutVar s a) |
class MutableContainer c => MutableCollection c where Source
Associated Types
type CollElement c Source
Instances
| 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
Methods
popFront :: (PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c)) Source
Instances
| 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
Methods
pushFront :: (PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m () Source
Instances
| 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
Methods
popBack :: (PrimMonad m, PrimState m ~ MCState c) => c -> m (Maybe (CollElement c)) Source
Instances
| 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
Methods
pushBack :: (PrimMonad m, PrimState m ~ MCState c) => c -> CollElement c -> m () Source
Instances
| 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