Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 3149

ghc-7.4.2-4.mga5.i586.rpm

<!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.Base</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-Base.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.Base</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Vectorisation Monad
</a></li><li><a href="#g:2">Lifting
</a></li><li><a href="#g:3">Error Handling
</a></li><li><a href="#g:4">Debugging
</a></li><li><a href="#g:5">Control
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The Vectorisation monad.
</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">data</span>  <a href="#t:VResult">VResult</a> a<ul class="subs"><li>= <a href="#v:Yes">Yes</a> <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> <a href="Vectorise-Env.html#t:LocalEnv">LocalEnv</a> a  </li><li>| <a href="#v:No">No</a> <a href="Outputable.html#t:SDoc">SDoc</a>  </li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:VM">VM</a> a = <a href="#v:VM">VM</a> {<ul class="subs"><li><a href="#v:runVM">runVM</a> :: <a href="Vectorise-Builtins-Base.html#t:Builtins">Builtins</a> -&gt; <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -&gt; <a href="Vectorise-Env.html#t:LocalEnv">LocalEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="Vectorise-Monad-Base.html#t:VResult">VResult</a> a)</li></ul>}</li><li class="src short"><a href="#v:liftDs">liftDs</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:cantVectorise">cantVectorise</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; a</li><li class="src short"><a href="#v:maybeCantVectorise">maybeCantVectorise</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; a</li><li class="src short"><a href="#v:maybeCantVectoriseM">maybeCantVectoriseM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; m (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; m a</li><li class="src short"><a href="#v:emitVt">emitVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:traceVt">traceVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:dumpOptVt">dumpOptVt</a> :: <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:dumpVt">dumpVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:noV">noV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:traceNoV">traceNoV</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:ensureV">ensureV</a> :: <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:traceEnsureV">traceEnsureV</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</li><li class="src short"><a href="#v:onlyIfV">onlyIfV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:tryV">tryV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <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)</li><li class="src short"><a href="#v:tryErrV">tryErrV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <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)</li><li class="src short"><a href="#v:maybeV">maybeV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <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) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:traceMaybeV">traceMaybeV</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <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) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:orElseV">orElseV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:orElseErrV">orElseErrV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li><li class="src short"><a href="#v:fixV">fixV</a> ::  (a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</li></ul></div><div id="interface"><h1 id="g:1">The Vectorisation Monad
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:VResult" class="def">VResult</a> a </p><div class="doc"><p>Vectorisation can either succeed with new envionment and a value, or return with failure
 (including a description of the reason for failure).
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Yes" class="def">Yes</a> <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> <a href="Vectorise-Env.html#t:LocalEnv">LocalEnv</a> a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:No" class="def">No</a> <a href="Outputable.html#t:SDoc">SDoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:VM" class="def">VM</a> a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VM" class="def">VM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runVM" class="def">runVM</a> :: <a href="Vectorise-Builtins-Base.html#t:Builtins">Builtins</a> -&gt; <a href="Vectorise-Env.html#t:GlobalEnv">GlobalEnv</a> -&gt; <a href="Vectorise-Env.html#t:LocalEnv">LocalEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="Vectorise-Monad-Base.html#t:VResult">VResult</a> a)</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:VM" class="caption collapser" onclick="toggleSection('i:VM')">Instances</p><div id="section.i:VM" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="Vectorise-Monad-Base.html#t:VM">VM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Vectorise-Monad-Base.html#t:VM">VM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="MonadUtils.html#t:Applicative">Applicative</a> <a href="Vectorise-Monad-Base.html#t:VM">VM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="MonadUtils.html#t:MonadIO">MonadIO</a> <a href="Vectorise-Monad-Base.html#t:VM">VM</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Lifting
</h1><div class="top"><p class="src"><a name="v:liftDs" class="def">liftDs</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Lift a desugaring computation into the vectorisation monad.
</p></div></div><h1 id="g:3">Error Handling
</h1><div class="top"><p class="src"><a name="v:cantVectorise" class="def">cantVectorise</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; a</p><div class="doc"><p>Throw a <code><a href="Panic.html#v:pgmError">pgmError</a></code> saying we can't vectorise something.
</p></div></div><div class="top"><p class="src"><a name="v:maybeCantVectorise" class="def">maybeCantVectorise</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; a</p><div class="doc"><p>Like <code>fromJust</code>, but <code><a href="Panic.html#v:pgmError">pgmError</a></code> on Nothing.
</p></div></div><div class="top"><p class="src"><a name="v:maybeCantVectoriseM" class="def">maybeCantVectoriseM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; m (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; m a</p><div class="doc"><p>Like <code><a href="Vectorise-Monad-Base.html#v:maybeCantVectorise">maybeCantVectorise</a></code> but in a <code><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a></code>.
</p></div></div><h1 id="g:4">Debugging
</h1><div class="top"><p class="src"><a name="v:emitVt" class="def">emitVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Output a trace message if -ddump-vt-trace is active.
</p></div></div><div class="top"><p class="src"><a name="v:traceVt" class="def">traceVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Output a trace message if -ddump-vt-trace is active.
</p></div></div><div class="top"><p class="src"><a name="v:dumpOptVt" class="def">dumpOptVt</a> :: <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Dump the given program conditionally.
</p></div></div><div class="top"><p class="src"><a name="v:dumpVt" class="def">dumpVt</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Dump the given program unconditionally.
</p></div></div><h1 id="g:5">Control
</h1><div class="top"><p class="src"><a name="v:noV" class="def">noV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Return some result saying we've failed.
</p></div></div><div class="top"><p class="src"><a name="v:traceNoV" class="def">traceNoV</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Like <code><a href="Vectorise-Monad-Base.html#v:traceNoV">traceNoV</a></code> but also emit some trace message to stderr.
</p></div></div><div class="top"><p class="src"><a name="v:ensureV" class="def">ensureV</a> :: <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>If <code><a href="../base-4.5.1.0/Data-Bool.html#v:True">True</a></code> then carry on, otherwise fail.
</p></div></div><div class="top"><p class="src"><a name="v:traceEnsureV" class="def">traceEnsureV</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> ()</p><div class="doc"><p>Like <code><a href="Vectorise-Monad-Base.html#v:ensureV">ensureV</a></code> but if we fail then emit some trace message to stderr.
</p></div></div><div class="top"><p class="src"><a name="v:onlyIfV" class="def">onlyIfV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>If <code><a href="../base-4.5.1.0/Data-Bool.html#v:True">True</a></code> then return the first argument, otherwise fail.
</p></div></div><div class="top"><p class="src"><a name="v:tryV" class="def">tryV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <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)</p><div class="doc"><p>Try some vectorisation computaton.
</p><p>If it succeeds then return <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Just">Just</a></code> the result; otherwise, return <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> without emitting a
 failure message.
</p></div></div><div class="top"><p class="src"><a name="v:tryErrV" class="def">tryErrV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <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)</p><div class="doc"><p>Try some vectorisation computaton.
</p><p>If it succeeds then return <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Just">Just</a></code> the result; otherwise, return <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> after emitting a
 failure message.
</p></div></div><div class="top"><p class="src"><a name="v:maybeV" class="def">maybeV</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <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) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>If <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Just">Just</a></code> then return the value, otherwise fail.
</p></div></div><div class="top"><p class="src"><a name="v:traceMaybeV" class="def">traceMaybeV</a> ::  <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <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) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Like <code><a href="Vectorise-Monad-Base.html#v:maybeV">maybeV</a></code> but emit a message to stderr if we fail.
</p></div></div><div class="top"><p class="src"><a name="v:orElseV" class="def">orElseV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Try the first computation,
</p><ul><li> if it succeeds then take the returned value,
   * if it fails then run the second computation instead without emitting a failure message.
</li></ul></div></div><div class="top"><p class="src"><a name="v:orElseErrV" class="def">orElseErrV</a> ::  <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Try the first computation,
</p><ul><li> if it succeeds then take the returned value,
   * if it fails then run the second computation instead while emitting a failure message.
</li></ul></div></div><div class="top"><p class="src"><a name="v:fixV" class="def">fixV</a> ::  (a -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a) -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> a</p><div class="doc"><p>Fixpoint in the vectorisation monad.
</p></div></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>