Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1f2b142b9d2ef4849a6f5316fa1c5b12 > files > 1404

ghc-6.10.4-1mdv2010.0.i586.rpm

<!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
>GHC.Arr</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_GHC-Arr.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"
>base-4.1.0.0: Basic libraries</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"
>GHC.Arr</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (GHC extensions)</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>internal</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>cvs-ghc@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>GHC's array implementation.
</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="Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="#t%3AIx"
>Ix</A
> a  <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%3Arange"
>range</A
> :: (a, a) -&gt; [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aindex"
>index</A
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeIndex"
>unsafeIndex</A
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AinRange"
>inRange</A
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArangeSize"
>rangeSize</A
> :: (a, a) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeRangeSize"
>unsafeRangeSize</A
> :: (a, a) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AindexError"
>indexError</A
> :: <A HREF="Text-Show.html#t%3AShow"
>Show</A
> a =&gt; (a, a) -&gt; a -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
> -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AIPr"
>IPr</A
> = (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
> <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="#t%3AArray"
>Array</A
> i e = <A HREF="#v%3AArray"
>Array</A
> !i !i !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Prim.html#t%3AArray%23"
>Array#</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ASTArray"
>STArray</A
> s i e = <A HREF="#v%3ASTArray"
>STArray</A
> !i !i !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarrEleBottom"
>arrEleBottom</A
> ::  a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aarray"
>array</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; [(i, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeArray"
>unsafeArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeArray%27"
>unsafeArray'</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afill"
>fill</A
> ::  <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e) -&gt; STRep s a -&gt; STRep s a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adone"
>done</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; i -&gt; i -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; STRep s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlistArray"
>listArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; [e] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%21"
>(!)</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; i -&gt; e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsafeRangeSize"
>safeRangeSize</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsafeIndex"
>safeIndex</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; i -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeAt"
>unsafeAt</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Abounds"
>bounds</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; (i, i)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnumElements"
>numElements</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aindices"
>indices</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [i]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aelems"
>elems</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [e]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aassocs"
>assocs</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, e)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaccumArray"
>accumArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; e -&gt; (i, i) -&gt; [(i, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeAccumArray"
>unsafeAccumArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; e -&gt; (i, i) -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeAccumArray%27"
>unsafeAccumArray'</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; e -&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aadjust"
>adjust</A
> ::  (e -&gt; a -&gt; e) -&gt; <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a) -&gt; STRep s b -&gt; STRep s b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2F%2F"
>(//)</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeReplace"
>unsafeReplace</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aaccum"
>accum</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeAccum"
>unsafeAccum</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aamap"
>amap</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (a -&gt; b) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i a -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aixmap"
>ixmap</A
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> j) =&gt; (i, i) -&gt; (i -&gt; j) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> j e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AeqArray"
>eqArray</A
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> e) =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcmpArray"
>cmpArray</A
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> e) =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcmpIntArray"
>cmpIntArray</A
> :: <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> e =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> e -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewSTArray"
>newSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AboundsSTArray"
>boundsSTArray</A
> ::  <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; (i, i)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnumElementsSTArray"
>numElementsSTArray</A
> ::  <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadSTArray"
>readSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; i -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeReadSTArray"
>unsafeReadSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteSTArray"
>writeSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; i -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s <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%3AunsafeWriteSTArray"
>unsafeWriteSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s <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%3AfreezeSTArray"
>freezeSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeFreezeSTArray"
>unsafeFreezeSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AthawSTArray"
>thawSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeThawSTArray"
>unsafeThawSTArray</A
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Documentation</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> a =&gt; <A NAME="t:Ix"
><A NAME="t%3AIx"
></A
></A
><B
>Ix</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
></TT
> class is used to map a contiguous subrange of values in
 a type onto integers.  It is used primarily for array indexing
 (see the array package).
</P
><P
>The first argument <TT
>(l,u)</TT
> of each of these operations is a pair
 specifying the lower and upper bounds of a contiguous subrange of values.
</P
><P
>An implementation is entitled to assume the following laws about these
 operations:
</P
><UL
><LI
><PRE
><TT
><A HREF="GHC-Arr.html#v%3AinRange"
>inRange</A
></TT
> (l,u) i == <TT
><A HREF="Data-List.html#v%3Aelem"
>elem</A
></TT
> i (<TT
><A HREF="GHC-Arr.html#v%3Arange"
>range</A
></TT
> (l,u))</PRE
></LI
><LI
> <TT
><TT
><A HREF="GHC-Arr.html#v%3Arange"
>range</A
></TT
> (l,u) <TT
><A HREF="Data-List.html#v%3A%21%21"
>!!</A
></TT
> <TT
><A HREF="GHC-Arr.html#v%3Aindex"
>index</A
></TT
> (l,u) i == i</TT
>, when <TT
><TT
><A HREF="GHC-Arr.html#v%3AinRange"
>inRange</A
></TT
> (l,u) i</TT
>
</LI
><LI
><PRE
><TT
><A HREF="Data-List.html#v%3Amap"
>map</A
></TT
> (<TT
><A HREF="GHC-Arr.html#v%3Aindex"
>index</A
></TT
> (l,u)) (<TT
><A HREF="GHC-Arr.html#v%3Arange"
>range</A
></TT
> (l,u))) == [0..<TT
><A HREF="GHC-Arr.html#v%3ArangeSize"
>rangeSize</A
></TT
> (l,u)-1]</PRE
></LI
><LI
><PRE
><TT
><A HREF="GHC-Arr.html#v%3ArangeSize"
>rangeSize</A
></TT
> (l,u) == <TT
><A HREF="Data-List.html#v%3Alength"
>length</A
></TT
> (<TT
><A HREF="GHC-Arr.html#v%3Arange"
>range</A
></TT
> (l,u))</PRE
></LI
></UL
><P
>Minimal complete instance: <TT
><A HREF="GHC-Arr.html#v%3Arange"
>range</A
></TT
>, <TT
><A HREF="GHC-Arr.html#v%3Aindex"
>index</A
></TT
> and <TT
><A HREF="GHC-Arr.html#v%3AinRange"
>inRange</A
></TT
>.
</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:range"
><A NAME="v%3Arange"
></A
></A
><B
>range</B
> :: (a, a) -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>The list of values in the subrange defined by a bounding pair.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:index"
><A NAME="v%3Aindex"
></A
></A
><B
>index</B
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>The position of a subscript in the subrange.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeIndex"
><A NAME="v%3AunsafeIndex"
></A
></A
><B
>unsafeIndex</B
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Like <TT
><A HREF="GHC-Arr.html#v%3Aindex"
>index</A
></TT
>, but without checking that the value is in range.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:inRange"
><A NAME="v%3AinRange"
></A
></A
><B
>inRange</B
> :: (a, a) -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> the given subscript lies in the range defined
 the bounding pair.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rangeSize"
><A NAME="v%3ArangeSize"
></A
></A
><B
>rangeSize</B
> :: (a, a) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>The size of the subrange defined by a bounding pair.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeRangeSize"
><A NAME="v%3AunsafeRangeSize"
></A
></A
><B
>unsafeRangeSize</B
> :: (a, a) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>like <TT
><A HREF="GHC-Arr.html#v%3ArangeSize"
>rangeSize</A
></TT
>, but without checking that the upper bound is
 in range.
</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:Ix')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Ix" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> b) =&gt; <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a1, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a2, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a3) =&gt; <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a1 a2 a3)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a1, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a2, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a3, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a4) =&gt; <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a1 a2 a3 a4)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a1, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a2, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a3, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a4, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a5) =&gt; <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a1 a2 a3 a4 a5)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:indexError"
><A NAME="v%3AindexError"
></A
></A
><B
>indexError</B
> :: <A HREF="Text-Show.html#t%3AShow"
>Show</A
> a =&gt; (a, a) -&gt; a -&gt; <A HREF="Data-Char.html#t%3AString"
>String</A
> -&gt; b</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:IPr"
><A NAME="t%3AIPr"
></A
></A
><B
>IPr</B
> = (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
> <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A NAME="t:Array"
><A NAME="t%3AArray"
></A
></A
><B
>Array</B
> i e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The type of immutable non-strict (boxed) arrays
 with indices in <TT
>i</TT
> and elements in <TT
>e</TT
>.
 The Int is the number of elements in the Array.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Array"
><A NAME="v%3AArray"
></A
></A
><B
>Array</B
> !i !i !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Prim.html#t%3AArray%23"
>Array#</A
> e)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Array')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Array" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="Data-Foldable.html#t%3AFoldable"
>Foldable</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="Data-Traversable.html#t%3ATraversable"
>Traversable</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> e) =&gt; <A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Typeable.html#t%3ATypeable"
>Typeable</A
> a, <A HREF="Data-Data.html#t%3AData"
>Data</A
> b, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a) =&gt; <A HREF="Data-Data.html#t%3AData"
>Data</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> e) =&gt; <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a, <A HREF="Text-Read.html#t%3ARead"
>Read</A
> a, <A HREF="Text-Read.html#t%3ARead"
>Read</A
> b) =&gt; <A HREF="Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a, <A HREF="Text-Show.html#t%3AShow"
>Show</A
> a, <A HREF="Text-Show.html#t%3AShow"
>Show</A
> b) =&gt; <A HREF="Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:STArray"
><A NAME="t%3ASTArray"
></A
></A
><B
>STArray</B
> s i e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Mutable, boxed, non-strict arrays in the <TT
><A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
></TT
> monad.  The type
 arguments are as follows:
</P
><UL
><LI
> <TT
>s</TT
>: the state variable argument for the <TT
><A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
></TT
> type
</LI
><LI
> <TT
>i</TT
>: the index type of the array (should be an instance of <TT
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
></TT
>)
</LI
><LI
> <TT
>e</TT
>: the element type of the array.
</LI
></UL
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:STArray"
><A NAME="v%3ASTArray"
></A
></A
><B
>STArray</B
> !i !i !<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:STArray')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:STArray" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable3"
>Typeable3</A
> <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:arrEleBottom"
><A NAME="v%3AarrEleBottom"
></A
></A
><B
>arrEleBottom</B
> ::  a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:array"
><A NAME="v%3Aarray"
></A
></A
><B
>array</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; (i, i)</TD
><TD CLASS="rdoc"
>a pair of <EM
>bounds</EM
>, each of the index type
 of the array.  These bounds are the lowest and
 highest indices in the array, in that order.
 For example, a one-origin vector of length
 '10' has bounds '(1,10)', and a one-origin '10'
 by '10' matrix has bounds '((1,1),(10,10))'.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [(i, e)]</TD
><TD CLASS="rdoc"
>a list of <EM
>associations</EM
> of the form
 (<EM
>index</EM
>, <EM
>value</EM
>).  Typically, this list will
 be expressed as a comprehension.  An
 association '(i, x)' defines the value of
 the array at index i to be x.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Construct an array with the specified bounds and containing values
 for given indices within these bounds.
</P
><P
>The array is undefined (i.e. bottom) if any index in the list is
 out of bounds.  The Haskell 98 Report further specifies that if any
 two associations in the list have the same index, the value at that
 index is undefined (i.e. bottom).  However in GHC's implementation,
 the value at such an index is the value part of the last association
 with that index in the list.
</P
><P
>Because the indices must be checked for these errors, <TT
><A HREF="GHC-Arr.html#v%3Aarray"
>array</A
></TT
> is
 strict in the bounds argument and in the indices of the association
 list, but nonstrict in the values.  Thus, recurrences such as the
 following are possible:
</P
><PRE
> a = array (1,100) ((1,1) : [(i, i * a!(i-1)) | i &lt;- [2..100]])
</PRE
><P
>Not every index within the bounds of the array need appear in the
 association list, but the values associated with indices that do not
 appear will be undefined (i.e. bottom).
</P
><P
>If, in any dimension, the lower bound is greater than the upper bound,
 then the array is legal, but empty.  Indexing an empty array always
 gives an array-bounds error, but <TT
><A HREF="GHC-Arr.html#v%3Abounds"
>bounds</A
></TT
> still yields the bounds
 with which the array was constructed.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeArray"
><A NAME="v%3AunsafeArray"
></A
></A
><B
>unsafeArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeArray'"
><A NAME="v%3AunsafeArray%27"
></A
></A
><B
>unsafeArray'</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fill"
><A NAME="v%3Afill"
></A
></A
><B
>fill</B
> ::  <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e) -&gt; STRep s a -&gt; STRep s a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:done"
><A NAME="v%3Adone"
></A
></A
><B
>done</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; i -&gt; i -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; STRep s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:listArray"
><A NAME="v%3AlistArray"
></A
></A
><B
>listArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; [e] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
>Construct an array from a pair of bounds and a list of values in
 index order.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:!"
><A NAME="v%3A%21"
></A
></A
><B
>(!)</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; i -&gt; e</TD
></TR
><TR
><TD CLASS="doc"
>The value at the given index in an array.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:safeRangeSize"
><A NAME="v%3AsafeRangeSize"
></A
></A
><B
>safeRangeSize</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:safeIndex"
><A NAME="v%3AsafeIndex"
></A
></A
><B
>safeIndex</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; i -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeAt"
><A NAME="v%3AunsafeAt"
></A
></A
><B
>unsafeAt</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bounds"
><A NAME="v%3Abounds"
></A
></A
><B
>bounds</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; (i, i)</TD
></TR
><TR
><TD CLASS="doc"
>The bounds with which an array was constructed.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:numElements"
><A NAME="v%3AnumElements"
></A
></A
><B
>numElements</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>The number of elements in the array.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:indices"
><A NAME="v%3Aindices"
></A
></A
><B
>indices</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [i]</TD
></TR
><TR
><TD CLASS="doc"
>The list of indices of an array in ascending order.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:elems"
><A NAME="v%3Aelems"
></A
></A
><B
>elems</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [e]</TD
></TR
><TR
><TD CLASS="doc"
>The list of elements of an array in index order.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:assocs"
><A NAME="v%3Aassocs"
></A
></A
><B
>assocs</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, e)]</TD
></TR
><TR
><TD CLASS="doc"
>The list of associations of an array in index order.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:accumArray"
><A NAME="v%3AaccumArray"
></A
></A
><B
>accumArray</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; e -&gt; a -&gt; e</TD
><TD CLASS="rdoc"
>accumulating function
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; e</TD
><TD CLASS="rdoc"
>initial value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; (i, i)</TD
><TD CLASS="rdoc"
>bounds of the array
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [(i, a)]</TD
><TD CLASS="rdoc"
>association list
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>The <TT
><A HREF="GHC-Arr.html#v%3AaccumArray"
>accumArray</A
></TT
> deals with repeated indices in the association
 list using an <EM
>accumulating function</EM
> which combines the values of
 associations with the same index.
 For example, given a list of values of some index type, <TT
>hist</TT
>
 produces a histogram of the number of occurrences of each index within
 a specified range:
</P
><PRE
> hist :: (Ix a, Num b) =&gt; (a,a) -&gt; [a] -&gt; Array a b
 hist bnds is = accumArray (+) 0 bnds [(i, 1) | i&lt;-is, inRange bnds i]
</PRE
><P
>If the accumulating function is strict, then <TT
><A HREF="GHC-Arr.html#v%3AaccumArray"
>accumArray</A
></TT
> is strict in
 the values, as well as the indices, in the association list.  Thus,
 unlike ordinary arrays built with <TT
><A HREF="GHC-Arr.html#v%3Aarray"
>array</A
></TT
>, accumulated arrays should
 not in general be recursive.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeAccumArray"
><A NAME="v%3AunsafeAccumArray"
></A
></A
><B
>unsafeAccumArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; e -&gt; (i, i) -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeAccumArray'"
><A NAME="v%3AunsafeAccumArray%27"
></A
></A
><B
>unsafeAccumArray'</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; e -&gt; (i, i) -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:adjust"
><A NAME="v%3Aadjust"
></A
></A
><B
>adjust</B
> ::  (e -&gt; a -&gt; e) -&gt; <A HREF="../ghc-prim/GHC-Prim.html#t%3AMutableArray%23"
>MutableArray#</A
> s e -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a) -&gt; STRep s b -&gt; STRep s b</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v://"
><A NAME="v%3A%2F%2F"
></A
></A
><B
>(//)</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
><P
>Constructs an array identical to the first argument except that it has
 been updated by the associations in the right argument.
 For example, if <TT
>m</TT
> is a 1-origin, <TT
>n</TT
> by <TT
>n</TT
> matrix, then
</P
><PRE
> m//[((i,i), 0) | i &lt;- [1..n]]
</PRE
><P
>is the same matrix, except with the diagonal zeroed.
</P
><P
>Repeated indices in the association list are handled as for <TT
><A HREF="GHC-Arr.html#v%3Aarray"
>array</A
></TT
>:
 Haskell 98 specifies that the resulting array is undefined (i.e. bottom),
 but GHC's implementation uses the last association for each index.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeReplace"
><A NAME="v%3AunsafeReplace"
></A
></A
><B
>unsafeReplace</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, e)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:accum"
><A NAME="v%3Aaccum"
></A
></A
><B
>accum</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(i, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><TT
><A HREF="GHC-Arr.html#v%3Aaccum"
>accum</A
></TT
> f</TT
> takes an array and an association list and accumulates
 pairs from the list into the array with the accumulating function <TT
>f</TT
>.
 Thus <TT
><A HREF="GHC-Arr.html#v%3AaccumArray"
>accumArray</A
></TT
> can be defined using <TT
><A HREF="GHC-Arr.html#v%3Aaccum"
>accum</A
></TT
>:
</P
><PRE
> accumArray f z b = accum f (array b [(i, z) | i &lt;- range b])
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeAccum"
><A NAME="v%3AunsafeAccum"
></A
></A
><B
>unsafeAccum</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (e -&gt; a -&gt; e) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; [(<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, a)] -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:amap"
><A NAME="v%3Aamap"
></A
></A
><B
>amap</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (a -&gt; b) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i a -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i b</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ixmap"
><A NAME="v%3Aixmap"
></A
></A
><B
>ixmap</B
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> j) =&gt; (i, i) -&gt; (i -&gt; j) -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> j e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="GHC-Arr.html#v%3Aixmap"
>ixmap</A
></TT
> allows for transformations on array indices.
 It may be thought of as providing function composition on the right
 with the mapping that the original array embodies.
</P
><P
>A similar transformation of array values may be achieved using <TT
><A HREF="Control-Monad.html#v%3Afmap"
>fmap</A
></TT
>
 from the <TT
><A HREF="GHC-Arr.html#t%3AArray"
>Array</A
></TT
> instance of the <TT
><A HREF="Control-Monad.html#t%3AFunctor"
>Functor</A
></TT
> class.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:eqArray"
><A NAME="v%3AeqArray"
></A
></A
><B
>eqArray</B
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Eq.html#t%3AEq"
>Eq</A
> e) =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cmpArray"
><A NAME="v%3AcmpArray"
></A
></A
><B
>cmpArray</B
> :: (<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> e) =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cmpIntArray"
><A NAME="v%3AcmpIntArray"
></A
></A
><B
>cmpIntArray</B
> :: <A HREF="Data-Ord.html#t%3AOrd"
>Ord</A
> e =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> e -&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> e -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newSTArray"
><A NAME="v%3AnewSTArray"
></A
></A
><B
>newSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; (i, i) -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:boundsSTArray"
><A NAME="v%3AboundsSTArray"
></A
></A
><B
>boundsSTArray</B
> ::  <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; (i, i)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:numElementsSTArray"
><A NAME="v%3AnumElementsSTArray"
></A
></A
><B
>numElementsSTArray</B
> ::  <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readSTArray"
><A NAME="v%3AreadSTArray"
></A
></A
><B
>readSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; i -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeReadSTArray"
><A NAME="v%3AunsafeReadSTArray"
></A
></A
><B
>unsafeReadSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeSTArray"
><A NAME="v%3AwriteSTArray"
></A
></A
><B
>writeSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; i -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeWriteSTArray"
><A NAME="v%3AunsafeWriteSTArray"
></A
></A
><B
>unsafeWriteSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:freezeSTArray"
><A NAME="v%3AfreezeSTArray"
></A
></A
><B
>freezeSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeFreezeSTArray"
><A NAME="v%3AunsafeFreezeSTArray"
></A
></A
><B
>unsafeFreezeSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:thawSTArray"
><A NAME="v%3AthawSTArray"
></A
></A
><B
>thawSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeThawSTArray"
><A NAME="v%3AunsafeThawSTArray"
></A
></A
><B
>unsafeThawSTArray</B
> :: <A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e -&gt; <A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</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
>