Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 459

ghc-doc-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
>Data.Array.Parallel.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_Data-Array-Parallel-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"
>dph-base-0.3: Basic Definitions for Data-Parallel Haskell.</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.Parallel.Arr</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (unboxed values and GHC libraries)</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>internal</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Roman Leshchinskiy &lt;rl@cse.unsw.edu.au&gt;</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"
>Types
</A
></DT
><DT
><A HREF="#2"
>Operations on immutable arrays
</A
></DT
><DT
><A HREF="#3"
>Operations on mutable arrays
</A
></DT
><DT
><A HREF="#4"
>Types
</A
></DT
><DT
><A HREF="#5"
>Elements of unboxed arrays
</A
></DT
><DT
><A HREF="#6"
>Operations on mutable arrays
</A
></DT
><DT
><A HREF="#7"
>Operations on immutable arrays
</A
></DT
><DD
><DL
><DT
><A HREF="#8"
>Basic operations
</A
></DT
><DT
><A HREF="#9"
>Streaming
</A
></DT
><DT
><A HREF="#10"
>Higher-order and arithmetic operations
</A
></DT
></DL
></DD
><DT
><A HREF="#11"
>Conversions to/from lists
</A
></DT
><DT
><A HREF="#12"
>I/O
</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"
>Interface to the Arr modules
</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"
>data</SPAN
>  <A HREF="#t%3ABBArr"
>BBArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AMBBArr"
>MBBArr</A
> s e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlengthBB"
>lengthBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> 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%3AindexBB"
>indexBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> 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%3AextractBB"
>extractBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewMBB"
>newMBB</A
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlengthMBB"
>lengthMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s 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%3AreadMBB"
>readMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/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%3AwriteMBB"
>writeMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="../base/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%3AunsafeFreezeMBB"
>unsafeFreezeMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeFreezeAllMBB"
>unsafeFreezeAllMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextractMBB"
>extractMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcopyMBB"
>copyMBB</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../base/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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AMBUArr"
>MBUArr</A
> s e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> e =&gt; <A HREF="#t%3AUAE"
>UAE</A
> e  <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%3AindexBU"
>indexBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadMBU"
>readMBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteMBU"
>writeMBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlengthMBU"
>lengthMBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s 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%3AnewMBU"
>newMBU</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextractMBU"
>extractMBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcopyMBU"
>copyMBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../base/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%3AunsafeFreezeMBU"
>unsafeFreezeMBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunsafeFreezeAllMBU"
>unsafeFreezeAllMBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlengthBU"
>lengthBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> 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%3AemptyBU"
>emptyBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreplicateBU"
>replicateBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsliceBU"
>sliceBU</A
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextractBU"
>extractBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AstreamBU"
>streamBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="Data-Array-Parallel-Stream.html#t%3AStream"
>Stream</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunstreamBU"
>unstreamBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Stream.html#t%3AStream"
>Stream</A
> e -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmapBU"
>mapBU</A
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b) =&gt; (a -&gt; b) -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfoldlBU"
>foldlBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfoldBU"
>foldBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a =&gt; (a -&gt; a -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AscanlBU"
>scanlBU</A
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b) =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AscanBU"
>scanBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a =&gt; (a -&gt; a -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsumBU"
>sumBU</A
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="../base/Prelude.html#t%3ANum"
>Num</A
> a) =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoBU"
>toBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; [e] -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromBU"
>fromBU</A
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; [e]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhPutBU"
>hPutBU</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../base/System-IO.html#t%3AHandle"
>Handle</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> <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%3AhGetBU"
>hGetBU</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../base/System-IO.html#t%3AHandle"
>Handle</A
> -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> 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"
>Types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BBArr"
><A NAME="t%3ABBArr"
></A
></A
><B
>BBArr</B
> e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Immutable boxed arrays
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:BBArr')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:BBArr" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> e =&gt; <A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> e =&gt; <A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</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:MBBArr"
><A NAME="t%3AMBBArr"
></A
></A
><B
>MBBArr</B
> s e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Mutable boxed arrays
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Operations on immutable arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lengthBB"
><A NAME="v%3AlengthBB"
></A
></A
><B
>lengthBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Length of an immutable boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:indexBB"
><A NAME="v%3AindexBB"
></A
></A
><B
>indexBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e</TD
></TR
><TR
><TD CLASS="doc"
>Access an element in an immutable, boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extractBB"
><A NAME="v%3AextractBB"
></A
></A
><B
>extractBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Extract a slice from an array (given by its start index and length)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Operations on mutable arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newMBB"
><A NAME="v%3AnewMBB"
></A
></A
><B
>newMBB</B
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e)</TD
></TR
><TR
><TD CLASS="doc"
>Allocate a boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lengthMBB"
><A NAME="v%3AlengthMBB"
></A
></A
><B
>lengthMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Length of a mutable boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readMBB"
><A NAME="v%3AreadMBB"
></A
></A
><B
>readMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="doc"
>Access an element in an mutable, boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeMBB"
><A NAME="v%3AwriteMBB"
></A
></A
><B
>writeMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="../base/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="doc"
>Update an element in an mutable, boxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeFreezeMBB"
><A NAME="v%3AunsafeFreezeMBB"
></A
></A
><B
>unsafeFreezeMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Turn a mutable into an immutable array WITHOUT copying its contents, which
 implies that the mutable array must not be mutated anymore after this
 operation has been executed.
</P
><UL
><LI
> The explicit size parameter supports partially filled arrays (and must be
   less than or equal the size used when allocating the mutable array)
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeFreezeAllMBB"
><A NAME="v%3AunsafeFreezeAllMBB"
></A
></A
><B
>unsafeFreezeAllMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Turn a mutable into an immutable array WITHOUT copying its contents, which
 implies that the mutable array must not be mutated anymore after this
 operation has been executed.
</P
><UL
><LI
> In contrast to <TT
><A HREF="Data-Array-Parallel-Arr.html#v%3AunsafeFreezeMBB"
>unsafeFreezeMBB</A
></TT
>, this operation always freezes the
 entire array.
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extractMBB"
><A NAME="v%3AextractMBB"
></A
></A
><B
>extractMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
>Extract a slice from a mutable array (the slice is immutable)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:copyMBB"
><A NAME="v%3AcopyMBB"
></A
></A
><B
>copyMBB</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBBArr"
>MBBArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABBArr"
>BBArr</A
> e -&gt; <A HREF="../base/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="doc"
>Copy a the contents of an immutable array into a mutable array from the
 specified position on
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:BUArr"
><A NAME="t%3ABUArr"
></A
></A
><B
>BUArr</B
> e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Immutable unboxed arrays
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:BUArr')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:BUArr" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
>(<A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> e, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e) =&gt; <A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> e, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e) =&gt; <A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> e =&gt; <A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</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:MBUArr"
><A NAME="t%3AMBUArr"
></A
></A
><B
>MBUArr</B
> s e </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Mutable unboxed arrays
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MBUArr')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:MBUArr" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> e =&gt; <A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Elements of unboxed arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Data-Array-Parallel-Base.html#t%3AHS"
>HS</A
> e =&gt; <A NAME="t:UAE"
><A NAME="t%3AUAE"
></A
></A
><B
>UAE</B
> e  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Class of elements that can be stored in unboxed arrays
</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:indexBU"
><A NAME="v%3AindexBU"
></A
></A
><B
>indexBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e</TD
></TR
><TR
><TD CLASS="doc"
>Yield the element at the given position of an immutable array.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readMBU"
><A NAME="v%3AreadMBU"
></A
></A
><B
>readMBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s e</TD
></TR
><TR
><TD CLASS="doc"
>Read the element at the given position of a mutable array.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeMBU"
><A NAME="v%3AwriteMBU"
></A
></A
><B
>writeMBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="../base/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="doc"
>Write the element at the given position of a mutable array.
</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:UAE')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:UAE" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../base/Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Operations on mutable arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lengthMBU"
><A NAME="v%3AlengthMBU"
></A
></A
><B
>lengthMBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Number of elements of a mutable unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newMBU"
><A NAME="v%3AnewMBU"
></A
></A
><B
>newMBU</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e)</TD
></TR
><TR
><TD CLASS="doc"
>Allocate an uninitialised unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extractMBU"
><A NAME="v%3AextractMBU"
></A
></A
><B
>extractMBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
>Extract a slice from a mutable array (the slice is immutable)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:copyMBU"
><A NAME="v%3AcopyMBU"
></A
></A
><B
>copyMBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../base/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="doc"
>Copy a the contents of an immutable array into a mutable array from the
 specified position on
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeFreezeMBU"
><A NAME="v%3AunsafeFreezeMBU"
></A
></A
><B
>unsafeFreezeMBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Turn a mutable into an immutable array WITHOUT copying its contents, which
 implies that the mutable array must not be mutated anymore after this
 operation has been executed.
</P
><UL
><LI
> The explicit size parameter supports partially filled arrays (and must be
   less than or equal the size used when allocating the mutable array)
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unsafeFreezeAllMBU"
><A NAME="v%3AunsafeFreezeAllMBU"
></A
></A
><B
>unsafeFreezeAllMBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3AMBUArr"
>MBUArr</A
> s e -&gt; <A HREF="../base/Control-Monad-ST.html#t%3AST"
>ST</A
> s (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Turn a mutable into an immutable array WITHOUT copying its contents, which
 implies that the mutable array must not be mutated anymore after this
 operation has been executed.
</P
><UL
><LI
> In contrast to <TT
><A HREF="Data-Array-Parallel-Arr.html#v%3AunsafeFreezeMBU"
>unsafeFreezeMBU</A
></TT
>, this operation always freezes the
 entire array.
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>Operations on immutable arrays
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="8"
><A NAME="8"
>Basic operations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lengthBU"
><A NAME="v%3AlengthBU"
></A
></A
><B
>lengthBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Number of elements of an immutable unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyBU"
><A NAME="v%3AemptyBU"
></A
></A
><B
>emptyBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Empty array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:replicateBU"
><A NAME="v%3AreplicateBU"
></A
></A
><B
>replicateBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; e -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
><P
>Combinators for unboxed arrays
 -
</P
><P
>Replicate combinator for unboxed arrays
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sliceBU"
><A NAME="v%3AsliceBU"
></A
></A
><B
>sliceBU</B
> ::  <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Produces an array that consists of a subrange of the original one without
 copying any elements.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extractBU"
><A NAME="v%3AextractBU"
></A
></A
><B
>extractBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Extract a slice from an array (given by its start index and length)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="9"
><A NAME="9"
>Streaming
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:streamBU"
><A NAME="v%3AstreamBU"
></A
></A
><B
>streamBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="Data-Array-Parallel-Stream.html#t%3AStream"
>Stream</A
> e</TD
></TR
><TR
><TD CLASS="doc"
><P
>Stream of unboxed arrays
 -------------------------
</P
><P
>Generate a stream from an array, from left to right
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unstreamBU"
><A NAME="v%3AunstreamBU"
></A
></A
><B
>unstreamBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Stream.html#t%3AStream"
>Stream</A
> e -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Construct an array from a stream, filling it from left to right
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="10"
><A NAME="10"
>Higher-order and arithmetic operations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mapBU"
><A NAME="v%3AmapBU"
></A
></A
><B
>mapBU</B
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b) =&gt; (a -&gt; b) -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b</TD
></TR
><TR
><TD CLASS="doc"
>Map a function over an unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldlBU"
><A NAME="v%3AfoldlBU"
></A
></A
><B
>foldlBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Reduce an unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldBU"
><A NAME="v%3AfoldBU"
></A
></A
><B
>foldBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a =&gt; (a -&gt; a -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Reduce an unboxed array using an *associative* combining operator
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanlBU"
><A NAME="v%3AscanlBU"
></A
></A
><B
>scanlBU</B
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> b) =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> b -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>Prefix reduction of an unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanBU"
><A NAME="v%3AscanBU"
></A
></A
><B
>scanBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a =&gt; (a -&gt; a -&gt; a) -&gt; a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>Prefix reduction of an unboxed array using an *associative* combining
 operator
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sumBU"
><A NAME="v%3AsumBU"
></A
></A
><B
>sumBU</B
> :: (<A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> a, <A HREF="../base/Prelude.html#t%3ANum"
>Num</A
> a) =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Summation of an unboxed array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="11"
><A NAME="11"
>Conversions to/from lists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:toBU"
><A NAME="v%3AtoBU"
></A
></A
><B
>toBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; [e] -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e</TD
></TR
><TR
><TD CLASS="doc"
>Convert a list to an array
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fromBU"
><A NAME="v%3AfromBU"
></A
></A
><B
>fromBU</B
> :: <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; [e]</TD
></TR
><TR
><TD CLASS="doc"
>Convert an array to a list
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="12"
><A NAME="12"
>I/O
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hPutBU"
><A NAME="v%3AhPutBU"
></A
></A
><B
>hPutBU</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../base/System-IO.html#t%3AHandle"
>Handle</A
> -&gt; <A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> e -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> <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:hGetBU"
><A NAME="v%3AhGetBU"
></A
></A
><B
>hGetBU</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> e. <A HREF="Data-Array-Parallel-Arr.html#t%3AUAE"
>UAE</A
> e =&gt; <A HREF="../base/System-IO.html#t%3AHandle"
>Handle</A
> -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Data-Array-Parallel-Arr.html#t%3ABUArr"
>BUArr</A
> 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
>