X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FArray%2FMArray.hs;h=95fae9726dee0fa0f55908e9b6d308fcb670d6b5;hb=8588695da8e9dcbfd78e1b3674f1883bf1116c0e;hp=c341dab6dae0b0abd94485a8d17dbc7997415648;hpb=7f1f4e7a695c402ddd3a1dc2cc7114e649a78ebc;p=haskell-directory.git diff --git a/Data/Array/MArray.hs b/Data/Array/MArray.hs index c341dab..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 --- --- $Id: MArray.hs,v 1.1 2001/06/28 14:15:02 simonmar Exp $ +-- Portability : non-portable (uses Data.Array.Base) -- --- 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