Portability | non-portable (GHC Extensions) |
---|---|
Stability | experimental |
Maintainer | josef.svenningsson@gmail.com |
This library provides a monad transformer version of the ST monad.
- data STT s m a
- runST :: Monad m => (forall s. STT s m a) -> m a
- data STRef s a
- newSTRef :: Monad m => a -> STT s m (STRef s a)
- readSTRef :: Monad m => STRef s a -> STT s m a
- writeSTRef :: Monad m => STRef s a -> a -> STT s m ()
- data STArray s i e
- newSTArray :: (Ix i, Monad m) => (i, i) -> e -> STT s m (STArray s i e)
- readSTArray :: (Ix i, Monad m) => STArray s i e -> i -> STT s m e
- writeSTArray :: (Ix i, Monad m) => STArray s i e -> i -> e -> STT s m ()
- boundsSTArray :: STArray s i e -> (i, i)
- numElementsSTArray :: STArray s i e -> Int
- freezeSTArray :: (Ix i, Monad m) => STArray s i e -> STT s m (Array i e)
- thawSTArray :: (Ix i, Monad m) => Array i e -> STT s m (STArray s i e)
- runSTArray :: (Ix i, Monad m) => (forall s. STT s m (STArray s i e)) -> m (Array i e)
The ST Monad Transformer
STT
is the monad transformer providing polymorphic updateable references
MonadReader r m => MonadReader r (STT s m) | |
MonadState s m => MonadState s (STT s' m) | |
MonadError e m => MonadError e (STT s m) | |
MonadWriter w m => MonadWriter w (STT s m) | |
MonadTrans (STT s) | |
Monad m => Monad (STT s m) |
runST :: Monad m => (forall s. STT s m a) -> m aSource
Executes a computation in the STT
monad transformer
Mutable references
Mutable arrays
newSTArray :: (Ix i, Monad m) => (i, i) -> e -> STT s m (STArray s i e)Source
Creates a new mutable array
readSTArray :: (Ix i, Monad m) => STArray s i e -> i -> STT s m eSource
Retrieves an element from the array
writeSTArray :: (Ix i, Monad m) => STArray s i e -> i -> e -> STT s m ()Source
Modifies an element in the array
boundsSTArray :: STArray s i e -> (i, i)Source
Returns the lowest and highest indices of the array
numElementsSTArray :: STArray s i e -> IntSource
Returns the number of elements in the array
freezeSTArray :: (Ix i, Monad m) => STArray s i e -> STT s m (Array i e)Source
Copy a mutable array and turn it into an immutable array