<!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>Vectorise.Vect</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_Vectorise-Vect.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">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Vectorise.Vect</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Simple vectorised constructors and projections. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Vect">Vect</a> a = (a, a)</li><li class="src short"><span class="keyword">type</span> <a href="#t:VVar">VVar</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:VExpr">VExpr</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:VBind">VBind</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="CoreSyn.html#t:CoreBind">CoreBind</a></li><li class="src short"><a href="#v:vectorised">vectorised</a> :: <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> a</li><li class="src short"><a href="#v:lifted">lifted</a> :: <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> a</li><li class="src short"><a href="#v:mapVect">mapVect</a> :: (a -> b) -> <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> <a href="Vectorise-Vect.html#t:Vect">Vect</a> b</li><li class="src short"><a href="#v:vVarType">vVarType</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Type.html#t:Type">Type</a></li><li class="src short"><a href="#v:vNonRec">vNonRec</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VBind">VBind</a></li><li class="src short"><a href="#v:vRec">vRec</a> :: [<a href="Vectorise-Vect.html#t:VVar">VVar</a>] -> [<a href="Vectorise-Vect.html#t:VExpr">VExpr</a>] -> <a href="Vectorise-Vect.html#t:VBind">VBind</a></li><li class="src short"><a href="#v:vVar">vVar</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vType">vType</a> :: <a href="Type.html#t:Type">Type</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vTick">vTick</a> :: <a href="CoreSyn.html#t:Tickish">Tickish</a> <a href="Var.html#t:Id">Id</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vLet">vLet</a> :: <a href="Vectorise-Vect.html#t:VBind">VBind</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vLams">vLams</a> :: <a href="Var.html#t:Var">Var</a> -> [<a href="Vectorise-Vect.html#t:VVar">VVar</a>] -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vVarApps">vVarApps</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> [<a href="Vectorise-Vect.html#t:VVar">VVar</a>] -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li><li class="src short"><a href="#v:vCaseDEFAULT">vCaseDEFAULT</a> :: <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Type.html#t:Type">Type</a> -> <a href="Type.html#t:Type">Type</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Vect" class="def">Vect</a> a = (a, a)</p><div class="doc"><p>Contains the vectorised and lifted versions of some thing. </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VVar" class="def">VVar</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VExpr" class="def">VExpr</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VBind" class="def">VBind</a> = <a href="Vectorise-Vect.html#t:Vect">Vect</a> <a href="CoreSyn.html#t:CoreBind">CoreBind</a></p></div><div class="top"><p class="src"><a name="v:vectorised" class="def">vectorised</a> :: <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> a</p><div class="doc"><p>Get the vectorised version of a thing. </p></div></div><div class="top"><p class="src"><a name="v:lifted" class="def">lifted</a> :: <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> a</p><div class="doc"><p>Get the lifted version of a thing. </p></div></div><div class="top"><p class="src"><a name="v:mapVect" class="def">mapVect</a> :: (a -> b) -> <a href="Vectorise-Vect.html#t:Vect">Vect</a> a -> <a href="Vectorise-Vect.html#t:Vect">Vect</a> b</p><div class="doc"><p>Apply some function to both the vectorised and lifted versions of a thing. </p></div></div><div class="top"><p class="src"><a name="v:vVarType" class="def">vVarType</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Type.html#t:Type">Type</a></p><div class="doc"><p>Get the type of a vectorised variable. </p></div></div><div class="top"><p class="src"><a name="v:vNonRec" class="def">vNonRec</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VBind">VBind</a></p><div class="doc"><p>Make a vectorised non-recursive binding. </p></div></div><div class="top"><p class="src"><a name="v:vRec" class="def">vRec</a> :: [<a href="Vectorise-Vect.html#t:VVar">VVar</a>] -> [<a href="Vectorise-Vect.html#t:VExpr">VExpr</a>] -> <a href="Vectorise-Vect.html#t:VBind">VBind</a></p><div class="doc"><p>Make a vectorised recursive binding. </p></div></div><div class="top"><p class="src"><a name="v:vVar" class="def">vVar</a> :: <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p><div class="doc"><p>Wrap a vectorised variable as a vectorised expression. </p></div></div><div class="top"><p class="src"><a name="v:vType" class="def">vType</a> :: <a href="Type.html#t:Type">Type</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p><div class="doc"><p>Wrap a vectorised type as a vectorised expression. </p></div></div><div class="top"><p class="src"><a name="v:vTick" class="def">vTick</a> :: <a href="CoreSyn.html#t:Tickish">Tickish</a> <a href="Var.html#t:Id">Id</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p><div class="doc"><p>Make a vectorised note. </p></div></div><div class="top"><p class="src"><a name="v:vLet" class="def">vLet</a> :: <a href="Vectorise-Vect.html#t:VBind">VBind</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p><div class="doc"><p>Make a vectorised let expresion. </p></div></div><div class="top"><p class="src"><a name="v:vLams" class="def">vLams</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Var.html#t:Var">Var</a></td><td class="doc"><p>Var bound to the lifting context. </p></td></tr><tr><td class="src">-> [<a href="Vectorise-Vect.html#t:VVar">VVar</a>]</td><td class="doc"><p>Parameter vars for the abstraction. </p></td></tr><tr><td class="src">-> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></td><td class="doc"><p>Body of the abstraction. </p></td></tr><tr><td class="src">-> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Make a vectorised lambda abstraction. </p><p>The lifted version also binds the lifting context <code>lc</code>. </p></div></div><div class="top"><p class="src"><a name="v:vVarApps" class="def">vVarApps</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> [<a href="Vectorise-Vect.html#t:VVar">VVar</a>] -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p><div class="doc"><p>Apply an expression to a set of argument variables. </p><p>The lifted version is also applied to the variable of the lifting context. </p></div></div><div class="top"><p class="src"><a name="v:vCaseDEFAULT" class="def">vCaseDEFAULT</a> :: <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VVar">VVar</a> -> <a href="Type.html#t:Type">Type</a> -> <a href="Type.html#t:Type">Type</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a> -> <a href="Vectorise-Vect.html#t:VExpr">VExpr</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>