<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Array.MArray.Safe</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Data-Array-MArray-Safe.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">array-0.4.0.0: Mutable and immutable arrays</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (uses Data.Array.Base)</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Data.Array.MArray.Safe</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Class of mutable array types </a></li><li><a href="#g:2">The <code>Ix</code> class and operations </a></li><li><a href="#g:3">Constructing mutable arrays </a></li><li><a href="#g:4">Reading and writing mutable arrays </a></li><li><a href="#g:5">Derived arrays </a></li><li><a href="#g:6">Deconstructing mutable arrays </a></li><li><a href="#g:7">Conversions between mutable and immutable arrays </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>An overloaded interface to mutable arrays. For array types which can be used with this interface, see <a href="Data-Array-IO.html">Data.Array.IO</a>, <a href="Data-Array-ST.html">Data.Array.ST</a>, and <a href="Data-Array-Storable.html">Data.Array.Storable</a>. . Safe API only of <a href="Data-Array-MArray.html">Data.Array.MArray</a>. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="#t:MArray">MArray</a> a e m <span class="keyword">where</span><ul class="subs"><li><a href="#v:getBounds">getBounds</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => a i e -> m (i, i)</li><li><a href="#v:newArray">newArray</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => (i, i) -> e -> m (a i e)</li><li><a href="#v:newArray_">newArray_</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => (i, i) -> m (a i e)</li></ul></li><li class="src short">module <a href="../base-4.5.1.0/Data-Ix.html">Data.Ix</a></li><li class="src short"><a href="#v:newListArray">newListArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => (i, i) -> [e] -> m (a i e)</li><li class="src short"><a href="#v:readArray">readArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> i -> m e</li><li class="src short"><a href="#v:writeArray">writeArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> i -> e -> m ()</li><li class="src short"><a href="#v:mapArray">mapArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e' m, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => (e' -> e) -> a i e' -> m (a i e)</li><li class="src short"><a href="#v:mapIndices">mapIndices</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> j) => (i, i) -> (i -> j) -> a j e -> m (a i e)</li><li class="src short"><a href="#v:getElems">getElems</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> m [e]</li><li class="src short"><a href="#v:getAssocs">getAssocs</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> m [(i, e)]</li><li class="src short"><a href="#v:freeze">freeze</a> :: (<a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="Data-Array-IArray.html#t:IArray">IArray</a> b e) => a i e -> m (b i e)</li><li class="src short"><a href="#v:thaw">thaw</a> :: (<a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="Data-Array-IArray.html#t:IArray">IArray</a> a e, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> b e m) => a i e -> m (b i e)</li></ul></div><div id="interface"><h1 id="g:1">Class of mutable array types </h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m => <a name="t:MArray" class="def">MArray</a> a e m <span class="keyword">where</span></p><div class="doc"><p>Class of mutable array types. </p><p>An array type has the form <code>(a i e)</code> where <code>a</code> is the array type constructor (kind <code>* -> * -> *</code>), <code>i</code> is the index type (a member of the class <code><a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a></code>), and <code>e</code> is the element type. </p><p>The <code>MArray</code> class is parameterised over both <code>a</code> and <code>e</code> (so that instances specialised to certain element types can be defined, in the same way as for <code><a href="Data-Array-IArray.html#t:IArray">IArray</a></code>), and also over the type of the monad, <code>m</code>, in which the mutable array will be manipulated. </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:getBounds" class="def">getBounds</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => a i e -> m (i, i)</p><div class="doc"><p>Returns the bounds of the array </p></div><p class="src"><a name="v:newArray" class="def">newArray</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => (i, i) -> e -> m (a i e)</p><div class="doc"><p>Builds a new array, with every element initialised to the supplied value. </p></div><p class="src"><a name="v:newArray_" class="def">newArray_</a> :: <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i => (i, i) -> m (a i e)</p><div class="doc"><p>Builds a new array, with every element initialised to an undefined value. In a monadic context in which operations must be deterministic (e.g. the ST monad), the array elements are initialised to a fixed but undefined value, such as zero. </p></div></div><div class="subs instances"><p id="control.i:MArray" class="caption collapser" onclick="toggleSection('i:MArray')">Instances</p><div id="section.i:MArray" class="show"><table><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOArray">IOArray</a> e <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Prelude.html#t:Double">Double</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Prelude.html#t:Float">Float</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int8">Int8</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int16">Int16</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int32">Int32</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word">Word</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Foreign-Storable.html#t:Storable">Storable</a> e => <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-Storable.html#t:StorableArray">StorableArray</a> e <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> (<a href="../base-4.5.1.0/Foreign-StablePtr.html#t:StablePtr">StablePtr</a> a) <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> (<a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a) <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> <a href="Data-Array-IO.html#t:IOUArray">IOUArray</a> (<a href="../base-4.5.1.0/Foreign-Ptr.html#t:FunPtr">FunPtr</a> a) <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STArray">STArray</a> s) e (<a href="../base-4.5.1.0/Control-Monad-ST-Lazy-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STArray">STArray</a> s) e (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Int.html#t:Int32">Int32</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Int.html#t:Int16">Int16</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Int.html#t:Int8">Int8</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Prelude.html#t:Double">Double</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Prelude.html#t:Float">Float</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Word.html#t:Word">Word</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) (<a href="../base-4.5.1.0/Foreign-StablePtr.html#t:StablePtr">StablePtr</a> a) (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) (<a href="../base-4.5.1.0/Foreign-Ptr.html#t:FunPtr">FunPtr</a> a) (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> (<a href="Data-Array-ST.html#t:STUArray">STUArray</a> s) (<a href="../base-4.5.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> a) (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">The <code>Ix</code> class and operations </h1><div class="top"><p class="src">module <a href="../base-4.5.1.0/Data-Ix.html">Data.Ix</a></p></div><h1 id="g:3">Constructing mutable arrays </h1><div class="top"><p class="src"><a name="v:newListArray" class="def">newListArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => (i, i) -> [e] -> m (a i e)</p><div class="doc"><p>Constructs a mutable array from a list of initial elements. The list gives the elements of the array in ascending order beginning with the lowest index. </p></div></div><h1 id="g:4">Reading and writing mutable arrays </h1><div class="top"><p class="src"><a name="v:readArray" class="def">readArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> i -> m e</p><div class="doc"><p>Read an element from a mutable array </p></div></div><div class="top"><p class="src"><a name="v:writeArray" class="def">writeArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> i -> e -> m ()</p><div class="doc"><p>Write an element in a mutable array </p></div></div><h1 id="g:5">Derived arrays </h1><div class="top"><p class="src"><a name="v:mapArray" class="def">mapArray</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e' m, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => (e' -> e) -> a i e' -> m (a i e)</p><div class="doc"><p>Constructs a new array derived from the original array by applying a function to each of the elements. </p></div></div><div class="top"><p class="src"><a name="v:mapIndices" class="def">mapIndices</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> j) => (i, i) -> (i -> j) -> a j e -> m (a i e)</p><div class="doc"><p>Constructs a new array derived from the original array by applying a function to each of the indices. </p></div></div><h1 id="g:6">Deconstructing mutable arrays </h1><div class="top"><p class="src"><a name="v:getElems" class="def">getElems</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> m [e]</p><div class="doc"><p>Return a list of all the elements of a mutable array </p></div></div><div class="top"><p class="src"><a name="v:getAssocs" class="def">getAssocs</a> :: (<a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i) => a i e -> m [(i, e)]</p><div class="doc"><p>Return a list of all the associations of a mutable array, in index order. </p></div></div><h1 id="g:7">Conversions between mutable and immutable arrays </h1><div class="top"><p class="src"><a name="v:freeze" class="def">freeze</a> :: (<a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> a e m, <a href="Data-Array-IArray.html#t:IArray">IArray</a> b e) => a i e -> m (b i e)</p><div class="doc"><p>Converts a mutable array (any instance of <code><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a></code>) to an immutable array (any instance of <code><a href="Data-Array-IArray.html#t:IArray">IArray</a></code>) by taking a complete copy of it. </p></div></div><div class="top"><p class="src"><a name="v:thaw" class="def">thaw</a> :: (<a href="../base-4.5.1.0/Data-Ix.html#t:Ix">Ix</a> i, <a href="Data-Array-IArray.html#t:IArray">IArray</a> a e, <a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a> b e m) => a i e -> m (b i e)</p><div class="doc"><p>Converts an immutable array (any instance of <code><a href="Data-Array-IArray.html#t:IArray">IArray</a></code>) into a mutable array (any instance of <code><a href="Data-Array-MArray-Safe.html#t:MArray">MArray</a></code>) by taking a complete copy of it. </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>