<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Data.Array.MArray</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Data-Array-MArray.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >array-0.2.0.0: Mutable and immutable arrays</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Data.Array.MArray</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable (uses Data.Array.Base)</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Class of mutable array types </A ></DT ><DT ><A HREF="#2" >The <TT >Ix</TT > class and operations </A ></DT ><DT ><A HREF="#3" >Constructing mutable arrays </A ></DT ><DT ><A HREF="#4" >Reading and writing mutable arrays </A ></DT ><DT ><A HREF="#5" >Derived arrays </A ></DT ><DT ><A HREF="#6" >Deconstructing mutable arrays </A ></DT ><DT ><A HREF="#7" >Conversions between mutable and immutable arrays </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >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 >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base/Control-Monad.html#t%3AMonad" >Monad</A > m => <A HREF="#t%3AMArray" >MArray</A > a e m <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetBounds" >getBounds</A > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => a i e -> m (i, i)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewArray" >newArray</A > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => (i, i) -> e -> m (a i e)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewArray_" >newArray_</A > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => (i, i) -> m (a i e)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="../base/Data-Ix.html" >Data.Ix</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewListArray" >newListArray</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => (i, i) -> [e] -> m (a i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadArray" >readArray</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> i -> m e</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwriteArray" >writeArray</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> i -> e -> m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmapArray" >mapArray</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e' m, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => (e' -> e) -> a i e' -> m (a i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmapIndices" >mapIndices</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > j) => (i, i) -> (i -> j) -> a j e -> m (a i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetElems" >getElems</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> m [e]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetAssocs" >getAssocs</A > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> m [(i, e)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Afreeze" >freeze</A > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > b e) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunsafeFreeze" >unsafeFreeze</A > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > b e) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Athaw" >thaw</A > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > a e, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > b e m) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunsafeThaw" >unsafeThaw</A > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > a e, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > b e m) => a i e -> m (b i e)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Class of mutable array types </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base/Control-Monad.html#t%3AMonad" >Monad</A > m => <A NAME="t:MArray" ><A NAME="t%3AMArray" ></A ></A ><B >MArray</B > a e m <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >Class of mutable array types. </P ><P >An array type has the form <TT >(a i e)</TT > where <TT >a</TT > is the array type constructor (kind <TT >* -> * -> *</TT >), <TT >i</TT > is the index type (a member of the class <TT ><A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A ></TT >), and <TT >e</TT > is the element type. </P ><P >The <TT >MArray</TT > class is parameterised over both <TT >a</TT > and <TT >e</TT > (so that instances specialised to certain element types can be defined, in the same way as for <TT ><A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A ></TT >), and also over the type of the monad, <TT >m</TT >, in which the mutable array will be manipulated. </P ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:getBounds" ><A NAME="v%3AgetBounds" ></A ></A ><B >getBounds</B > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => a i e -> m (i, i)</TD ></TR ><TR ><TD CLASS="doc" >Returns the bounds of the array </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newArray" ><A NAME="v%3AnewArray" ></A ></A ><B >newArray</B > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => (i, i) -> e -> m (a i e)</TD ></TR ><TR ><TD CLASS="doc" >Builds a new array, with every element initialised to the supplied value. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newArray_" ><A NAME="v%3AnewArray_" ></A ></A ><B >newArray_</B > :: <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i => (i, i) -> m (a i e)</TD ></TR ><TR ><TD CLASS="doc" >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. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MArray')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:MArray" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > IOArray e <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > IOArray e <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Foreign-Storable.html#t%3AStorable" >Storable</A > e => <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-Storable.html#t%3AStorableArray" >StorableArray</A > e <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Foreign-Storable.html#t%3AStorable" >Storable</A > e => <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-Storable.html#t%3AStorableArray" >StorableArray</A > e <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > <A HREF="Data-Array-IO-Internals.html#t%3AIOUArray" >IOUArray</A > (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) <A HREF="../base/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="../base/GHC-Arr.html#t%3ASTArray" >STArray</A > s) e (<A HREF="../base/Control-Monad-ST-Lazy.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="../base/GHC-Arr.html#t%3ASTArray" >STArray</A > s) e (<A HREF="../base/Control-Monad-ST-Lazy.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="../base/GHC-Arr.html#t%3ASTArray" >STArray</A > s) e (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="../base/GHC-Arr.html#t%3ASTArray" >STArray</A > s) e (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord64" >Word64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord32" >Word32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord16" >Word16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord8" >Word8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt64" >Int64</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt32" >Int32</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt16" >Int16</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Int.html#t%3AInt8" >Int8</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble" >Double</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat" >Float</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../base/Data-Word.html#t%3AWord" >Word</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Types.html#t%3AChar" >Char</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-StablePtr.html#t%3AStablePtr" >StablePtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3AFunPtr" >FunPtr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > (<A HREF="Data-Array-ST.html#t%3ASTUArray" >STUArray</A > s) (<A HREF="../base/Foreign-Ptr.html#t%3APtr" >Ptr</A > a) (<A HREF="../base/Control-Monad-ST.html#t%3AST" >ST</A > s)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >The <TT >Ix</TT > class and operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="../base/Data-Ix.html" >Data.Ix</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Constructing mutable arrays </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newListArray" ><A NAME="v%3AnewListArray" ></A ></A ><B >newListArray</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => (i, i) -> [e] -> m (a i e)</TD ></TR ><TR ><TD CLASS="doc" >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. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Reading and writing mutable arrays </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readArray" ><A NAME="v%3AreadArray" ></A ></A ><B >readArray</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> i -> m e</TD ></TR ><TR ><TD CLASS="doc" >Read an element from a mutable array </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:writeArray" ><A NAME="v%3AwriteArray" ></A ></A ><B >writeArray</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> i -> e -> m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Write an element in a mutable array </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >Derived arrays </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mapArray" ><A NAME="v%3AmapArray" ></A ></A ><B >mapArray</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e' m, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => (e' -> e) -> a i e' -> m (a i e)</TD ></TR ><TR ><TD CLASS="doc" >Constructs a new array derived from the original array by applying a function to each of the elements. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mapIndices" ><A NAME="v%3AmapIndices" ></A ></A ><B >mapIndices</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > j) => (i, i) -> (i -> j) -> a j e -> m (a i e)</TD ></TR ><TR ><TD CLASS="doc" >Constructs a new array derived from the original array by applying a function to each of the indices. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >Deconstructing mutable arrays </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getElems" ><A NAME="v%3AgetElems" ></A ></A ><B >getElems</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> m [e]</TD ></TR ><TR ><TD CLASS="doc" >Return a list of all the elements of a mutable array </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getAssocs" ><A NAME="v%3AgetAssocs" ></A ></A ><B >getAssocs</B > :: (<A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i) => a i e -> m [(i, e)]</TD ></TR ><TR ><TD CLASS="doc" >Return a list of all the associations of a mutable array, in index order. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="7" ><A NAME="7" >Conversions between mutable and immutable arrays </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:freeze" ><A NAME="v%3Afreeze" ></A ></A ><B >freeze</B > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > b e) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="doc" >Converts a mutable array (any instance of <TT ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A ></TT >) to an immutable array (any instance of <TT ><A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A ></TT >) by taking a complete copy of it. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unsafeFreeze" ><A NAME="v%3AunsafeFreeze" ></A ></A ><B >unsafeFreeze</B > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > a e m, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > b e) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="doc" ><P >Converts an mutable array into an immutable array. The implementation may either simply cast the array from one type to the other without copying the array, or it may take a full copy of the array. </P ><P >Note that because the array is possibly not copied, any subsequent modifications made to the mutable version of the array may be shared with the immutable version. It is safe to use, therefore, if the mutable version is never modified after the freeze operation. </P ><P >The non-copying implementation is supported between certain pairs of array types only; one constraint is that the array types must have identical representations. In GHC, The following pairs of array types have a non-copying O(1) implementation of <TT ><A HREF="Data-Array-MArray.html#v%3AunsafeFreeze" >unsafeFreeze</A ></TT >. Because the optimised versions are enabled by specialisations, you will need to compile with optimisation (-O) to get them. </P ><UL ><LI > Data.Array.IO.IOUArray -> Data.Array.Unboxed.UArray </LI ><LI > Data.Array.ST.STUArray -> Data.Array.Unboxed.UArray </LI ><LI > Data.Array.IO.IOArray -> Data.Array.Array </LI ><LI > Data.Array.ST.STArray -> Data.Array.Array </LI ></UL ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:thaw" ><A NAME="v%3Athaw" ></A ></A ><B >thaw</B > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > a e, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > b e m) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="doc" >Converts an immutable array (any instance of <TT ><A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A ></TT >) into a mutable array (any instance of <TT ><A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A ></TT >) by taking a complete copy of it. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unsafeThaw" ><A NAME="v%3AunsafeThaw" ></A ></A ><B >unsafeThaw</B > :: (<A HREF="../base/GHC-Arr.html#t%3AIx" >Ix</A > i, <A HREF="Data-Array-IArray.html#t%3AIArray" >IArray</A > a e, <A HREF="Data-Array-MArray.html#t%3AMArray" >MArray</A > b e m) => a i e -> m (b i e)</TD ></TR ><TR ><TD CLASS="doc" ><P >Converts an immutable array into a mutable array. The implementation may either simply cast the array from one type to the other without copying the array, or it may take a full copy of the array. </P ><P >Note that because the array is possibly not copied, any subsequent modifications made to the mutable version of the array may be shared with the immutable version. It is only safe to use, therefore, if the immutable array is never referenced again in this thread, and there is no possibility that it can be also referenced in another thread. If you use an unsafeThaw<EM >write</EM >unsafeFreeze sequence in a multi-threaded setting, then you must ensure that this sequence is atomic with respect to other threads, or a garbage collector crash may result (because the write may be writing to a frozen array). </P ><P >The non-copying implementation is supported between certain pairs of array types only; one constraint is that the array types must have identical representations. In GHC, The following pairs of array types have a non-copying O(1) implementation of <TT ><A HREF="Data-Array-MArray.html#v%3AunsafeThaw" >unsafeThaw</A ></TT >. Because the optimised versions are enabled by specialisations, you will need to compile with optimisation (-O) to get them. </P ><UL ><LI > Data.Array.Unboxed.UArray -> Data.Array.IO.IOUArray </LI ><LI > Data.Array.Unboxed.UArray -> Data.Array.ST.STUArray </LI ><LI > Data.Array.Array -> Data.Array.IO.IOArray </LI ><LI > Data.Array.Array -> Data.Array.ST.STArray </LI ></UL ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >