X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FArray%2FMArray.hs;h=95fae9726dee0fa0f55908e9b6d308fcb670d6b5;hb=6b1a36a595eddf1e124529646afdb75c76a9966d;hp=e77f4eb64080f6511b2c198818bad923c395ec6c;hpb=9fa9bc17072a58c0bae2cce4764d38677e96ac29;p=haskell-directory.git diff --git a/Data/Array/MArray.hs b/Data/Array/MArray.hs index e77f4eb..95fae97 100644 --- a/Data/Array/MArray.hs +++ b/Data/Array/MArray.hs @@ -1,40 +1,45 @@ -{-# OPTIONS -monly-3-regs #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Array.MArray -- Copyright : (c) The University of Glasgow 2001 --- License : BSD-style (see the file libraries/core/LICENSE) +-- License : BSD-style (see the file libraries/base/LICENSE) -- -- Maintainer : libraries@haskell.org -- Stability : experimental --- Portability : non-portable +-- Portability : non-portable (uses Data.Array.Base) -- --- $Id: MArray.hs,v 1.2 2002/04/24 16:31:43 simonmar Exp $ --- --- Class of mutable arrays, and operations on them. +-- An overloaded interface to mutable arrays. For array types which can be +-- used with this interface, see "Data.Array.IO", "Data.Array.ST", +-- and "Data.Array.Storable". -- ----------------------------------------------------------------------------- module Data.Array.MArray ( - module Data.Ix, - - -- Class of mutable array types + -- * Class of mutable array types MArray, -- :: (* -> * -> *) -> * -> (* -> *) -> class - -- Class of array types with immutable bounds - HasBounds, -- :: (* -> * -> *) -> class + -- * The @Ix@ class and operations + module Data.Ix, + + -- * Constructing mutable arrays newArray, -- :: (MArray a e m, Ix i) => (i,i) -> e -> m (a i e) newArray_, -- :: (MArray a e m, Ix i) => (i,i) -> m (a i e) newListArray, -- :: (MArray a e m, Ix i) => (i,i) -> [e] -> m (a i e) + + -- * Reading and writing mutable arrays readArray, -- :: (MArray a e m, Ix i) => a i e -> i -> m e writeArray, -- :: (MArray a e m, Ix i) => a i e -> i -> e -> m () - bounds, -- :: (HasBounds a, Ix i) => a i e -> (i,i) - indices, -- :: (HasBounds a, Ix i) => a i e -> [i] - getElems, -- :: (MArray a e m, Ix i) => a i e -> m [e] - getAssocs, -- :: (MArray a e m, Ix i) => a i e -> m [(i, e)] + + -- * Derived arrays mapArray, -- :: (MArray a e' m, MArray a e m, Ix i) => (e' -> e) -> a i e' -> m (a i e) mapIndices, -- :: (MArray a e m, Ix i, Ix j) => (i,i) -> (i -> j) -> a j e -> m (a i e) + -- * Deconstructing mutable arrays + getBounds, -- :: (MArray a e m, Ix i) => a i e -> m (i,i) + getElems, -- :: (MArray a e m, Ix i) => a i e -> m [e] + getAssocs, -- :: (MArray a e m, Ix i) => a i e -> m [(i, e)] + + -- * Conversions between mutable and immutable arrays freeze, -- :: (Ix i, MArray a e m, IArray b e) => a i e -> m (b i e) unsafeFreeze, -- :: (Ix i, MArray a e m, IArray b e) => a i e -> m (b i e) thaw, -- :: (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e) @@ -44,4 +49,7 @@ module Data.Array.MArray ( import Prelude import Data.Ix +#ifdef __HADDOCK__ +import Data.Array.IArray +#endif import Data.Array.Base