| Copyright | (C) 2011 Edward Kmett |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Stability | provisional |
| Portability | type families, MPTCs |
| Safe Haskell | None |
| Language | Haskell98 |
Control.Monad.Array.Class
Description
Synopsis
- class Monad m => MonadArray m where
- data Arr m :: * -> * -> *
- 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 ()
- 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 where
- data UArr m :: * -> * -> *
Documentation
class Monad m => MonadArray m where #
Arr m serves as a canonical choice of boxed MArray
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 # | |
Defined in Control.Monad.Array.Class 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) # | |
| MonadArray STM # | |
Defined in Control.Monad.Array.Class 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) # | |
| (MonadTrans t, Monad (t m), MonadArray m) => MonadArray (t m) # | |
Defined in Control.Monad.Array.Class 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) # | |
Defined in Control.Monad.Array.Class 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 and FunPtr a'Ptr a' as well.
Instances
| MonadUArray IO # | |
Defined in Control.Monad.Array.Class | |
| (MonadTrans t, Monad (t m), MonadUArray m) => MonadUArray (t m) # | |
Defined in Control.Monad.Array.Class | |
| MonadUArray (ST s) # | |
Defined in Control.Monad.Array.Class | |