<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GHC.PArr</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_GHC-PArr.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">base-4.3.1.0: Basic libraries</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (GHC Extensions) Basic implementation of Parallel Arrays. This module has two functions: (1) It defines the interface to the parallel array extension of the Prelude and (2) it provides a vanilla implementation of parallel arrays that does not require to flatten the array code. The implementation is not very optimised.</td></tr><tr><th>Stability</th><td>internal</td></tr><tr><th>Maintainer</th><td>Manuel M. T. Chakravarty <chak@cse.unsw.edu.au></td></tr></table><p class="caption">GHC.PArr</p></div><div id="description"><p class="caption">Description</p><div class="doc empty"> </div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:mapP">mapP</a> :: (a -> b) -> [:a:] -> [:b:]</li><li class="src short"><a href="#v:-43-:-43-">(+:+)</a> :: [:a:] -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:filterP">filterP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:concatP">concatP</a> :: [:[:a:]:] -> [:a:]</li><li class="src short"><a href="#v:concatMapP">concatMapP</a> :: (a -> [:b:]) -> [:a:] -> [:b:]</li><li class="src short"><a href="#v:nullP">nullP</a> :: [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:lengthP">lengthP</a> :: [:a:] -> <a href="Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:-33-:">(!:)</a> :: [:a:] -> <a href="Data-Int.html#t:Int">Int</a> -> a</li><li class="src short"><a href="#v:foldlP">foldlP</a> :: (a -> b -> a) -> a -> [:b:] -> a</li><li class="src short"><a href="#v:foldl1P">foldl1P</a> :: (a -> a -> a) -> [:a:] -> a</li><li class="src short"><a href="#v:scanlP">scanlP</a> :: (a -> b -> a) -> a -> [:b:] -> [:a:]</li><li class="src short"><a href="#v:scanl1P">scanl1P</a> :: (a -> a -> a) -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:foldrP">foldrP</a> :: (a -> b -> b) -> b -> [:a:] -> b</li><li class="src short"><a href="#v:foldr1P">foldr1P</a> :: (a -> a -> a) -> [:a:] -> a</li><li class="src short"><a href="#v:scanrP">scanrP</a> :: (a -> b -> b) -> b -> [:a:] -> [:b:]</li><li class="src short"><a href="#v:scanr1P">scanr1P</a> :: (a -> a -> a) -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:singletonP">singletonP</a> :: a -> [:a:]</li><li class="src short"><a href="#v:emptyP">emptyP</a> :: [:a:]</li><li class="src short"><a href="#v:replicateP">replicateP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> a -> [:a:]</li><li class="src short"><a href="#v:takeP">takeP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:dropP">dropP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:splitAtP">splitAtP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> ([:a:], [:a:])</li><li class="src short"><a href="#v:takeWhileP">takeWhileP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:dropWhileP">dropWhileP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</li><li class="src short"><a href="#v:spanP">spanP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> ([:a:], [:a:])</li><li class="src short"><a href="#v:breakP">breakP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> ([:a:], [:a:])</li><li class="src short"><a href="#v:reverseP">reverseP</a> :: [:a:] -> [:a:]</li><li class="src short"><a href="#v:andP">andP</a> :: [:<a href="Data-Bool.html#t:Bool">Bool</a>:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:orP">orP</a> :: [:<a href="Data-Bool.html#t:Bool">Bool</a>:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:anyP">anyP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:allP">allP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:elemP">elemP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:notElemP">notElemP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:lookupP">lookupP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:(a, b):] -> <a href="Data-Maybe.html#t:Maybe">Maybe</a> b</li><li class="src short"><a href="#v:sumP">sumP</a> :: <a href="Prelude.html#t:Num">Num</a> a => [:a:] -> a</li><li class="src short"><a href="#v:productP">productP</a> :: <a href="Prelude.html#t:Num">Num</a> a => [:a:] -> a</li><li class="src short"><a href="#v:maximumP">maximumP</a> :: <a href="Data-Ord.html#t:Ord">Ord</a> a => [:a:] -> a</li><li class="src short"><a href="#v:minimumP">minimumP</a> :: <a href="Data-Ord.html#t:Ord">Ord</a> a => [:a:] -> a</li><li class="src short"><a href="#v:zipP">zipP</a> :: [:a:] -> [:b:] -> [:(a, b):]</li><li class="src short"><a href="#v:zip3P">zip3P</a> :: [:a:] -> [:b:] -> [:c:] -> [:(a, b, c):]</li><li class="src short"><a href="#v:zipWithP">zipWithP</a> :: (a -> b -> c) -> [:a:] -> [:b:] -> [:c:]</li><li class="src short"><a href="#v:zipWith3P">zipWith3P</a> :: (a -> b -> c -> d) -> [:a:] -> [:b:] -> [:c:] -> [:d:]</li><li class="src short"><a href="#v:unzipP">unzipP</a> :: [:(a, b):] -> ([:a:], [:b:])</li><li class="src short"><a href="#v:unzip3P">unzip3P</a> :: [:(a, b, c):] -> ([:a:], [:b:], [:c:])</li><li class="src short"><a href="#v:enumFromToP">enumFromToP</a> :: <a href="Prelude.html#t:Enum">Enum</a> a => a -> a -> [:a:]</li><li class="src short"><a href="#v:enumFromThenToP">enumFromThenToP</a> :: <a href="Prelude.html#t:Enum">Enum</a> a => a -> a -> a -> [:a:]</li><li class="src short"><a href="#v:toP">toP</a> :: [a] -> [:a:]</li><li class="src short"><a href="#v:fromP">fromP</a> :: [:a:] -> [a]</li><li class="src short"><a href="#v:sliceP">sliceP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> <a href="Data-Int.html#t:Int">Int</a> -> [:e:] -> [:e:]</li><li class="src short"><a href="#v:foldP">foldP</a> :: (e -> e -> e) -> e -> [:e:] -> e</li><li class="src short"><a href="#v:fold1P">fold1P</a> :: (e -> e -> e) -> [:e:] -> e</li><li class="src short"><a href="#v:permuteP">permuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:]</li><li class="src short"><a href="#v:bpermuteP">bpermuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:]</li><li class="src short"><a href="#v:dpermuteP">dpermuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:] -> [:e:]</li><li class="src short"><a href="#v:crossP">crossP</a> :: [:a:] -> [:b:] -> [:(a, b):]</li><li class="src short"><a href="#v:crossMapP">crossMapP</a> :: [:a:] -> (a -> [:b:]) -> [:(a, b):]</li><li class="src short"><a href="#v:indexOfP">indexOfP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:<a href="Data-Int.html#t:Int">Int</a>:]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:mapP" class="def">mapP</a> :: (a -> b) -> [:a:] -> [:b:]</p></div><div class="top"><p class="src"><a name="v:-43-:-43-" class="def">(+:+)</a> :: [:a:] -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:filterP" class="def">filterP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:concatP" class="def">concatP</a> :: [:[:a:]:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:concatMapP" class="def">concatMapP</a> :: (a -> [:b:]) -> [:a:] -> [:b:]</p></div><div class="top"><p class="src"><a name="v:nullP" class="def">nullP</a> :: [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:lengthP" class="def">lengthP</a> :: [:a:] -> <a href="Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><a name="v:-33-:" class="def">(!:)</a> :: [:a:] -> <a href="Data-Int.html#t:Int">Int</a> -> a</p></div><div class="top"><p class="src"><a name="v:foldlP" class="def">foldlP</a> :: (a -> b -> a) -> a -> [:b:] -> a</p></div><div class="top"><p class="src"><a name="v:foldl1P" class="def">foldl1P</a> :: (a -> a -> a) -> [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:scanlP" class="def">scanlP</a> :: (a -> b -> a) -> a -> [:b:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:scanl1P" class="def">scanl1P</a> :: (a -> a -> a) -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:foldrP" class="def">foldrP</a> :: (a -> b -> b) -> b -> [:a:] -> b</p></div><div class="top"><p class="src"><a name="v:foldr1P" class="def">foldr1P</a> :: (a -> a -> a) -> [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:scanrP" class="def">scanrP</a> :: (a -> b -> b) -> b -> [:a:] -> [:b:]</p></div><div class="top"><p class="src"><a name="v:scanr1P" class="def">scanr1P</a> :: (a -> a -> a) -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:singletonP" class="def">singletonP</a> :: a -> [:a:]</p></div><div class="top"><p class="src"><a name="v:emptyP" class="def">emptyP</a> :: [:a:]</p></div><div class="top"><p class="src"><a name="v:replicateP" class="def">replicateP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> a -> [:a:]</p></div><div class="top"><p class="src"><a name="v:takeP" class="def">takeP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:dropP" class="def">dropP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:splitAtP" class="def">splitAtP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> [:a:] -> ([:a:], [:a:])</p></div><div class="top"><p class="src"><a name="v:takeWhileP" class="def">takeWhileP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:dropWhileP" class="def">dropWhileP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:spanP" class="def">spanP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> ([:a:], [:a:])</p></div><div class="top"><p class="src"><a name="v:breakP" class="def">breakP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> ([:a:], [:a:])</p></div><div class="top"><p class="src"><a name="v:reverseP" class="def">reverseP</a> :: [:a:] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:andP" class="def">andP</a> :: [:<a href="Data-Bool.html#t:Bool">Bool</a>:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:orP" class="def">orP</a> :: [:<a href="Data-Bool.html#t:Bool">Bool</a>:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:anyP" class="def">anyP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:allP" class="def">allP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:elemP" class="def">elemP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:notElemP" class="def">notElemP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:a:] -> <a href="Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:lookupP" class="def">lookupP</a> :: <a href="Data-Eq.html#t:Eq">Eq</a> a => a -> [:(a, b):] -> <a href="Data-Maybe.html#t:Maybe">Maybe</a> b</p></div><div class="top"><p class="src"><a name="v:sumP" class="def">sumP</a> :: <a href="Prelude.html#t:Num">Num</a> a => [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:productP" class="def">productP</a> :: <a href="Prelude.html#t:Num">Num</a> a => [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:maximumP" class="def">maximumP</a> :: <a href="Data-Ord.html#t:Ord">Ord</a> a => [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:minimumP" class="def">minimumP</a> :: <a href="Data-Ord.html#t:Ord">Ord</a> a => [:a:] -> a</p></div><div class="top"><p class="src"><a name="v:zipP" class="def">zipP</a> :: [:a:] -> [:b:] -> [:(a, b):]</p></div><div class="top"><p class="src"><a name="v:zip3P" class="def">zip3P</a> :: [:a:] -> [:b:] -> [:c:] -> [:(a, b, c):]</p></div><div class="top"><p class="src"><a name="v:zipWithP" class="def">zipWithP</a> :: (a -> b -> c) -> [:a:] -> [:b:] -> [:c:]</p></div><div class="top"><p class="src"><a name="v:zipWith3P" class="def">zipWith3P</a> :: (a -> b -> c -> d) -> [:a:] -> [:b:] -> [:c:] -> [:d:]</p></div><div class="top"><p class="src"><a name="v:unzipP" class="def">unzipP</a> :: [:(a, b):] -> ([:a:], [:b:])</p></div><div class="top"><p class="src"><a name="v:unzip3P" class="def">unzip3P</a> :: [:(a, b, c):] -> ([:a:], [:b:], [:c:])</p></div><div class="top"><p class="src"><a name="v:enumFromToP" class="def">enumFromToP</a> :: <a href="Prelude.html#t:Enum">Enum</a> a => a -> a -> [:a:]</p></div><div class="top"><p class="src"><a name="v:enumFromThenToP" class="def">enumFromThenToP</a> :: <a href="Prelude.html#t:Enum">Enum</a> a => a -> a -> a -> [:a:]</p></div><div class="top"><p class="src"><a name="v:toP" class="def">toP</a> :: [a] -> [:a:]</p></div><div class="top"><p class="src"><a name="v:fromP" class="def">fromP</a> :: [:a:] -> [a]</p></div><div class="top"><p class="src"><a name="v:sliceP" class="def">sliceP</a> :: <a href="Data-Int.html#t:Int">Int</a> -> <a href="Data-Int.html#t:Int">Int</a> -> [:e:] -> [:e:]</p></div><div class="top"><p class="src"><a name="v:foldP" class="def">foldP</a> :: (e -> e -> e) -> e -> [:e:] -> e</p></div><div class="top"><p class="src"><a name="v:fold1P" class="def">fold1P</a> :: (e -> e -> e) -> [:e:] -> e</p></div><div class="top"><p class="src"><a name="v:permuteP" class="def">permuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:]</p></div><div class="top"><p class="src"><a name="v:bpermuteP" class="def">bpermuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:]</p></div><div class="top"><p class="src"><a name="v:dpermuteP" class="def">dpermuteP</a> :: [:<a href="Data-Int.html#t:Int">Int</a>:] -> [:e:] -> [:e:] -> [:e:]</p></div><div class="top"><p class="src"><a name="v:crossP" class="def">crossP</a> :: [:a:] -> [:b:] -> [:(a, b):]</p></div><div class="top"><p class="src"><a name="v:crossMapP" class="def">crossMapP</a> :: [:a:] -> (a -> [:b:]) -> [:(a, b):]</p><div class="doc"><p>Compute a cross of an array and the arrays produced by the given function for the elements of the first array. </p></div></div><div class="top"><p class="src"><a name="v:indexOfP" class="def">indexOfP</a> :: (a -> <a href="Data-Bool.html#t:Bool">Bool</a>) -> [:a:] -> [:<a href="Data-Int.html#t:Int">Int</a>:]</p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>