X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FArray%2FMArray.hs;h=5dd4caf589fc434e3650117cdecec116ae9b8190;hb=40001ff06f1058c5b375f8b6c6c3dfd0471600ba;hp=c341dab6dae0b0abd94485a8d17dbc7997415648;hpb=7f1f4e7a695c402ddd3a1dc2cc7114e649a78ebc;p=ghc-base.git diff --git a/Data/Array/MArray.hs b/Data/Array/MArray.hs index c341dab..5dd4caf 100644 --- a/Data/Array/MArray.hs +++ b/Data/Array/MArray.hs @@ -1,40 +1,49 @@ -{-# 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 $ --- --- 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 + + -- * Class of array types with 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 () + + -- * 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 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)] - 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) + -- * 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)