monadic-arrays-0.2.2: Boxed and unboxed arrays for monad transformers

Copyright(C) 2011 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <[email protected]>
Stabilityprovisional
Portabilitytype families, MPTCs
Safe HaskellNone
LanguageHaskell98

Control.Monad.Array.Class

Description

 

Synopsis

Documentation

class Monad m => MonadArray m where Source #

Arr m serves as a canonical choice of boxed MArray

Associated Types

data Arr m :: * -> * -> * Source #

Methods

getBoundsM :: Ix i => Arr m i e -> m (i, i) Source #

getNumElementsM :: Ix i => Arr m i e -> m Int Source #

newArrayM :: Ix i => (i, i) -> e -> m (Arr m i e) Source #

newArrayM_ :: Ix i => (i, i) -> m (Arr m i e) Source #

unsafeNewArrayM_ :: Ix i => (i, i) -> m (Arr m i e) Source #

unsafeReadM :: Ix i => Arr m i e -> Int -> m e Source #

unsafeWriteM :: Ix i => Arr m i e -> Int -> e -> m () Source #

Instances

MonadArray IO Source # 

Associated Types

data Arr (IO :: * -> *) a b :: * Source #

Methods

getBoundsM :: Ix i => Arr IO i e -> IO (i, i) Source #

getNumElementsM :: Ix i => Arr IO i e -> IO Int Source #

newArrayM :: Ix i => (i, i) -> e -> IO (Arr IO i e) Source #

newArrayM_ :: Ix i => (i, i) -> IO (Arr IO i e) Source #

unsafeNewArrayM_ :: Ix i => (i, i) -> IO (Arr IO i e) Source #

unsafeReadM :: Ix i => Arr IO i e -> Int -> IO e Source #

unsafeWriteM :: Ix i => Arr IO i e -> Int -> e -> IO () Source #

MonadArray STM Source # 

Associated Types

data Arr (STM :: * -> *) a b :: * Source #

Methods

getBoundsM :: Ix i => Arr STM i e -> STM (i, i) Source #

getNumElementsM :: Ix i => Arr STM i e -> STM Int Source #

newArrayM :: Ix i => (i, i) -> e -> STM (Arr STM i e) Source #

newArrayM_ :: Ix i => (i, i) -> STM (Arr STM i e) Source #

unsafeNewArrayM_ :: Ix i => (i, i) -> STM (Arr STM i e) Source #

unsafeReadM :: Ix i => Arr STM i e -> Int -> STM e Source #

unsafeWriteM :: Ix i => Arr STM i e -> Int -> e -> STM () Source #

(MonadTrans t, Monad (t m), MonadArray m) => MonadArray (t m) Source # 

Associated Types

data Arr (t m :: * -> *) a b :: * Source #

Methods

getBoundsM :: Ix i => Arr (t m) i e -> t m (i, i) Source #

getNumElementsM :: Ix i => Arr (t m) i e -> t m Int Source #

newArrayM :: Ix i => (i, i) -> e -> t m (Arr (t m) i e) Source #

newArrayM_ :: Ix i => (i, i) -> t m (Arr (t m) i e) Source #

unsafeNewArrayM_ :: Ix i => (i, i) -> t m (Arr (t m) i e) Source #

unsafeReadM :: Ix i => Arr (t m) i e -> Int -> t m e Source #

unsafeWriteM :: Ix i => Arr (t m) i e -> Int -> e -> t m () Source #

MonadArray (ST s) Source # 

Associated Types

data Arr (ST s :: * -> *) a b :: * Source #

Methods

getBoundsM :: Ix i => Arr (ST s) i e -> ST s (i, i) Source #

getNumElementsM :: Ix i => Arr (ST s) i e -> ST s Int Source #

newArrayM :: Ix i => (i, i) -> e -> ST s (Arr (ST s) i e) Source #

newArrayM_ :: Ix i => (i, i) -> ST s (Arr (ST s) i e) Source #

unsafeNewArrayM_ :: Ix i => (i, i) -> ST s (Arr (ST s) i e) Source #

unsafeReadM :: Ix i => Arr (ST s) i e -> Int -> ST s e Source #

unsafeWriteM :: Ix i => Arr (ST s) i e -> Int -> e -> ST s () Source #

class (MonadArray m, MArray (UArr m) Bool m, MArray (UArr m) Char m, MArray (UArr m) Int m, MArray (UArr m) Word m, MArray (UArr m) Double m, MArray (UArr m) Float m, MArray (UArr m) Int8 m, MArray (UArr m) Int16 m, MArray (UArr m) Int32 m, MArray (UArr m) Int64 m, MArray (UArr m) Word8 m, MArray (UArr m) Word16 m, MArray (UArr m) Word32 m, MArray (UArr m) Word64 m, MArray1 (UArr m) StablePtr m, MArray1 (UArr m) FunPtr m, MArray1 (UArr m) Ptr m) => MonadUArray m Source #

UArr m provides unboxed arrays, and can be used on the primitive data types:

Bool, Char, Int, Word, Double, Float, Int8, Int16, Int32, Int64, Word8, Word16, Word32, and Word64

It can be used via MArray1 to store values of types StablePtr a, FunPtr a and 'Ptr a' as well.

Associated Types

data UArr m :: * -> * -> * Source #

Instances

MonadUArray IO Source # 

Associated Types

data UArr (IO :: * -> *) a b :: * Source #

(MonadTrans t, Monad (t m), MonadUArray m) => MonadUArray (t m) Source # 

Associated Types

data UArr (t m :: * -> *) a b :: * Source #

MonadUArray (ST s) Source # 

Associated Types

data UArr (ST s :: * -> *) a b :: * Source #