stateful-mtl-1.0.2: Stateful monad transformers with pure evaluation semantics.

Control.Monad.Array.ArrayT

Description

A monad that cleanly generalizes out implementation details of array manipulation in a monad. In general, this is likely to be the most efficient array transformer implementation made available in this library, but if improperly used, elements of this implementation may lead to segfaults.

Synopsis

Documentation

type ArrayM s e = ArrayT s e (ST s)Source

Monad controlling safe access to an underlying array.

data ArrayT s e m a Source

Monad transformer that safely grants the underlying monad access to a mutable array.

Instances

MonadReader r m => MonadReader r (ArrayT s e m) 
MonadState t m => MonadState t (ArrayT s e m) 
MonadWriter w m => MonadWriter w (ArrayT s e m) 
MonadST s m => MonadST s (ArrayT s e m) 
(MonadST s m, Monad m) => MonadArray e (ArrayT s e m) 
MonadTrans (ArrayT s e) 
Monad m => Monad (ArrayT s e m) 
MonadFix m => MonadFix (ArrayT s e m) 

runArrayM :: Int -> e -> (forall s. ArrayM s e a) -> aSource

runArrayM_ :: Int -> (forall s. ArrayM s e a) -> aSource

runArrayT :: (MonadST s m, Monad m) => Int -> e -> ArrayT s e m a -> m aSource

runArrayT_ :: (MonadST s m, Monad m) => Int -> ArrayT s e m a -> m aSource