<!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.Monad.Global</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-Monad-Global.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.Monad.Global</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Vars </a></li><li><a href="#g:2">Vectorisation declarations </a></li><li><a href="#g:3">Scalars </a></li><li><a href="#g:4">TyCons </a></li><li><a href="#g:5">Datacons </a></li><li><a href="#g:6">PA Dictionaries </a></li><li><a href="#g:7">PR Dictionaries </a></li></ul></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:readGEnv">readGEnv</a> :: (<a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> a) -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:setGEnv">setGEnv</a> :: <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:updGEnv">updGEnv</a> :: (<a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a>) -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:defGlobalVar">defGlobalVar</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:lookupVectDecl">lookupVectDecl</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Type.html#t:Type">Type</a>, <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>))</li><li class="src short"><a href="#v:noVectDecl">noVectDecl</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:globalScalarVars">globalScalarVars</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="VarSet.html#t:VarSet">VarSet</a></li><li class="src short"><a href="#v:isGlobalScalarVar">isGlobalScalarVar</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:globalScalarTyCons">globalScalarTyCons</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="NameSet.html#t:NameSet">NameSet</a></li><li class="src short"><a href="#v:lookupTyCon">lookupTyCon</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a>)</li><li class="src short"><a href="#v:defTyConName">defTyConName</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Name.html#t:Name">Name</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:defTyCon">defTyCon</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:globalVectTyCons">globalVectTyCons</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="TyCon.html#t:TyCon">TyCon</a>)</li><li class="src short"><a href="#v:lookupDataCon">lookupDataCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="DataCon.html#t:DataCon">DataCon</a>)</li><li class="src short"><a href="#v:defDataCon">defDataCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:lookupTyConPA">lookupTyConPA</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:defTyConPAs">defTyConPAs</a> :: [(<a href="TyCon.html#t:TyCon">TyCon</a>, <a href="Var.html#t:Var">Var</a>)] -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:lookupTyConPR">lookupTyConPR</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:readGEnv" class="def">readGEnv</a> :: (<a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> a) -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Project something from the global environment. </p></div></div><div class="top"><p class="src"><a name="v:setGEnv" class="def">setGEnv</a> :: <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Set the value of the global environment. </p></div></div><div class="top"><p class="src"><a name="v:updGEnv" class="def">updGEnv</a> :: (<a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -> <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a>) -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Update the global environment using the provided function. </p></div></div><h1 id="g:1">Vars </h1><div class="top"><p class="src"><a name="v:defGlobalVar" class="def">defGlobalVar</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Add a mapping between a global var and its vectorised version to the state. </p></div></div><h1 id="g:2">Vectorisation declarations </h1><div class="top"><p class="src"><a name="v:lookupVectDecl" class="def">lookupVectDecl</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Type.html#t:Type">Type</a>, <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>))</p><div class="doc"><p>Check whether a variable has a (non-scalar) vectorisation declaration. </p></div></div><div class="top"><p class="src"><a name="v:noVectDecl" class="def">noVectDecl</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Check whether a variable has a <code>NOVECTORISE</code> declaration. </p></div></div><h1 id="g:3">Scalars </h1><div class="top"><p class="src"><a name="v:globalScalarVars" class="def">globalScalarVars</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="VarSet.html#t:VarSet">VarSet</a></p><div class="doc"><p>Get the set of global scalar variables. </p></div></div><div class="top"><p class="src"><a name="v:isGlobalScalarVar" class="def">isGlobalScalarVar</a> :: <a href="Var.html#t:Var">Var</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Check whether a given variable is in the set of global scalar variables. </p></div></div><div class="top"><p class="src"><a name="v:globalScalarTyCons" class="def">globalScalarTyCons</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="NameSet.html#t:NameSet">NameSet</a></p><div class="doc"><p>Get the set of global scalar type constructors including both those scalar type constructors declared in an imported module and those declared in the current module. </p></div></div><h1 id="g:4">TyCons </h1><div class="top"><p class="src"><a name="v:lookupTyCon" class="def">lookupTyCon</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a>)</p><div class="doc"><p>Lookup the vectorised version of a <code><a href="TyCon.html#t:TyCon">TyCon</a></code> from the global environment. </p></div></div><div class="top"><p class="src"><a name="v:defTyConName" class="def">defTyConName</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Name.html#t:Name">Name</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Add a mapping between plain and vectorised <code><a href="TyCon.html#t:TyCon">TyCon</a></code>s to the global environment. </p><p>The second argument is only to enable tracing for (mutually) recursively defined type constructors, where we <em>must not</em> pull at the vectorised type constructors (because that would pull too early at the recursive knot). </p></div></div><div class="top"><p class="src"><a name="v:defTyCon" class="def">defTyCon</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Add a mapping between plain and vectorised <code><a href="TyCon.html#t:TyCon">TyCon</a></code>s to the global environment. </p></div></div><div class="top"><p class="src"><a name="v:globalVectTyCons" class="def">globalVectTyCons</a> :: <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="TyCon.html#t:TyCon">TyCon</a>)</p><div class="doc"><p>Get the set of all vectorised type constructors. </p></div></div><h1 id="g:5">Datacons </h1><div class="top"><p class="src"><a name="v:lookupDataCon" class="def">lookupDataCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="DataCon.html#t:DataCon">DataCon</a>)</p><div class="doc"><p>Lookup the vectorised version of a <code><a href="DataCon.html#t:DataCon">DataCon</a></code> from the global environment. </p></div></div><div class="top"><p class="src"><a name="v:defDataCon" class="def">defDataCon</a> :: <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="DataCon.html#t:DataCon">DataCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Add the mapping between plain and vectorised <code><a href="DataCon.html#t:DataCon">DataCon</a></code>s to the global environment. </p></div></div><h1 id="g:6">PA Dictionaries </h1><div class="top"><p class="src"><a name="v:lookupTyConPA" class="def">lookupTyConPA</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>Lookup the <code>PA</code> dfun of a vectorised type constructor in the global environment. </p></div></div><div class="top"><p class="src"><a name="v:defTyConPAs" class="def">defTyConPAs</a> :: [(<a href="TyCon.html#t:TyCon">TyCon</a>, <a href="Var.html#t:Var">Var</a>)] -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Associate vectorised type constructors with the dfun of their <code>PA</code> instances in the global environment. </p></div></div><h1 id="g:7">PR Dictionaries </h1><div class="top"><p class="src"><a name="v:lookupTyConPR" class="def">lookupTyConPR</a> :: <a href="TyCon.html#t:TyCon">TyCon</a> -> <a href="Vectorise-Monad-Base.html#t:VM">VM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</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>