Provides a MonadArray
implementation for any MArray
. Examples of when this would be useful include unboxed arrays and array implementations for specialized monads like STM.
- data MArrayM a e m x
- liftMArray :: (Monad m, MArray a e m) => m x -> MArrayM a e m x
- evalMArrayM :: (Monad m, MArray a e m) => Int -> e -> MArrayM a e m x -> m x
- execMArrayM :: (Monad m, MArray a e m) => Int -> e -> MArrayM a e m x -> m (a Int e)
- evalMArrayM_ :: (Monad m, MArray a e m) => Int -> MArrayM a e m x -> m x
- execMArrayM_ :: (Monad m, MArray a e m) => Int -> MArrayM a e m x -> m (a Int e)
Documentation
Provides a monadic wrapper around any MArray
implementation.
liftMArray :: (Monad m, MArray a e m) => m x -> MArrayM a e m xSource
Lifts a computation in the underlying monad to an MArrayM
computation on an array in the same monad.
evalMArrayM :: (Monad m, MArray a e m) => Int -> e -> MArrayM a e m x -> m xSource
Executes an MArrayM
computation with the specified initial size and default element.
execMArrayM :: (Monad m, MArray a e m) => Int -> e -> MArrayM a e m x -> m (a Int e)Source
Executes an MArrayM
computation with the specified initial size and default element, returning the final array.