| Copyright | (c) The University of Glasgow 2011 | 
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) | 
| Maintainer | libraries@haskell.org | 
| Stability | experimental | 
| Portability | non-portable (uses Data.Array.MArray) | 
| Safe Haskell | Trustworthy | 
| Language | Haskell2010 | 
Data.Array.ST.Safe
Description
Mutable boxed and unboxed arrays in the ST monad.
Safe API only of Data.Array.ST.
Since: array-0.4.0.0
Synopsis
- data STArray s i e
- runSTArray :: (forall s. ST s (STArray s i e)) -> Array i e
- data STUArray s i e
- runSTUArray :: (forall s. ST s (STUArray s i e)) -> UArray i e
- module Data.Array.MArray.Safe
Boxed arrays
Mutable, boxed, non-strict arrays in the ST monad.  The type
 arguments are as follows:
Instances
| MArray (STArray s) e (ST s) # | |
| Defined in Data.Array.Base Methods getBounds :: Ix i => STArray s i e -> ST s (i, i) # getNumElements :: Ix i => STArray s i e -> ST s Int newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) # newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) # unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) unsafeRead :: Ix i => STArray s i e -> Int -> ST s e unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () | |
| MArray (STArray s) e (ST s) # | |
| Defined in Data.Array.Base Methods getBounds :: Ix i => STArray s i e -> ST s (i, i) # getNumElements :: Ix i => STArray s i e -> ST s Int newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) # newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) # unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) unsafeRead :: Ix i => STArray s i e -> Int -> ST s e unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () | |
| Eq (STArray s i e) | Since: base-2.1 | 
runSTArray :: (forall s. ST s (STArray s i e)) -> Array i e #
A safe way to create and work with a mutable array before returning an
 immutable array for later perusal.  This function avoids copying
 the array before returning it - it uses unsafeFreeze internally, but
 this wrapper is a safe interface to that function.
Unboxed arrays
A mutable array with unboxed elements, that can be manipulated in
 the ST monad.  The type arguments are as follows:
- s: the state variable argument for the- STtype
- i: the index type of the array (should be an instance of- Ix)
- e: the element type of the array. Only certain element types are supported.
An STUArray will generally be more efficient (in terms of both time
 and space) than the equivalent boxed version (STArray) with the same
 element type.  However, STUArray is strict in its elements - so
 don't use STUArray if you require the non-strictness that
 STArray provides.
Instances
runSTUArray :: (forall s. ST s (STUArray s i e)) -> UArray i e #
A safe way to create and work with an unboxed mutable array before
 returning an immutable array for later perusal.  This function
 avoids copying the array before returning it - it uses
 unsafeFreeze internally, but this wrapper is a safe interface to
 that function.
Overloaded mutable array interface
module Data.Array.MArray.Safe