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 <ekmett@gmail.com>
Stabilityprovisional
Portabilitytype families, MPTCs
Safe HaskellNone
LanguageHaskell98

Control.Monad.Array.Class

Description

 
Synopsis

Documentation

class Monad m => MonadArray m where #

Arr m serves as a canonical choice of boxed MArray

Associated Types

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

Methods

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

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

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

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

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

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

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

Instances
MonadArray IO # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data Arr IO a b :: Type #

Methods

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

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

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

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

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

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

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

MonadArray STM # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data Arr STM a b :: Type #

Methods

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

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

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

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

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

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

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

(MonadTrans t, Monad (t m), MonadArray m) => MonadArray (t m) # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data Arr (t m) a b :: Type #

Methods

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

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

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

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

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

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

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

MonadArray (ST s) # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data Arr (ST s) a b :: Type #

Methods

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

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

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

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

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

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

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

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 #

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 :: * -> * -> * #

Instances
MonadUArray IO # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data UArr IO a b :: Type #

(MonadTrans t, Monad (t m), MonadUArray m) => MonadUArray (t m) # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data UArr (t m) a b :: Type #

MonadUArray (ST s) # 
Instance details

Defined in Control.Monad.Array.Class

Associated Types

data UArr (ST s) a b :: Type #