Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 04b8279fdc5e703609ad317fcd46531f > files > 29

ghc-lifted-base-devel-0.1.0.3-1.fc15.i686.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>Control.Exception.Lifted</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_Control-Exception-Lifted.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Exception-Lifted.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lifted-base-0.1.0.3: lifted IO operations from the base library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (extended exceptions)</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Bas van Dijk &lt;v.dijk.bas@gmail.com&gt;</td></tr></table><p class="caption">Control.Exception.Lifted</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Throwing exceptions
</a></li><li><a href="#g:2">Catching exceptions
</a><ul><li><a href="#g:3">The <code>catch</code> functions
</a></li><li><a href="#g:4">The <code>handle</code> functions
</a></li><li><a href="#g:5">The <code>try</code> functions
</a></li><li><a href="#g:6">The <code>evaluate</code> function
</a></li></ul></li><li><a href="#g:7">Asynchronous Exceptions
</a><ul><li><a href="#g:8">Asynchronous exception control
</a></li></ul></li><li><a href="#g:9">Brackets
</a></li><li><a href="#g:10">Utilities
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a wrapped version of <code>Control.Exception</code> with types generalized
from <code>IO</code> to all monads in either <code><a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a></code> or <code><a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a></code>.
</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">module <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception.html">Control.Exception</a></li><li class="src short"><a href="#v:throwIO">throwIO</a> :: (<a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; e -&gt; m &#945;</li><li class="src short"><a href="#v:ioError">ioError</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m &#945;</li><li class="src short"><a href="#v:catch">catch</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; m &#945; -&gt; (e -&gt; m &#945;) -&gt; m &#945;</li><li class="src short"><a href="#v:catches">catches</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; [<a href="Control-Exception-Lifted.html#t:Handler">Handler</a> m &#945;] -&gt; m &#945;</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Handler">Handler</a> m &#945; = <span class="keyword">forall</span> e . <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e =&gt; <a href="#v:Handler">Handler</a> (e -&gt; m &#945;)</li><li class="src short"><a href="#v:catchJust">catchJust</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;) -&gt; m &#945; -&gt; (&#946; -&gt; m &#945;) -&gt; m &#945;</li><li class="src short"><a href="#v:handle">handle</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; m &#945;) -&gt; m &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:handleJust">handleJust</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;) -&gt; (&#946; -&gt; m &#945;) -&gt; m &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:try">try</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; m &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Either.html#t:Either">Either</a> e &#945;)</li><li class="src short"><a href="#v:tryJust">tryJust</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;) -&gt; m &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Either.html#t:Either">Either</a> &#946; &#945;)</li><li class="src short"><a href="#v:evaluate">evaluate</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:mask">mask</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; ((<span class="keyword">forall</span> &#945;.  m &#945; -&gt; m &#945;) -&gt; m &#946;) -&gt; m &#946;</li><li class="src short"><a href="#v:mask_">mask_</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; ((<span class="keyword">forall</span> &#945;.  m &#945; -&gt; m &#945;) -&gt; m &#946;) -&gt; m &#946;</li><li class="src short"><a href="#v:uninterruptibleMask_">uninterruptibleMask_</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:getMaskingState">getMaskingState</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:MaskingState">MaskingState</a></li><li class="src short"><a href="#v:blocked">blocked</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:bracket">bracket</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; (&#945; -&gt; m &#946;) -&gt; (&#945; -&gt; m &#947;) -&gt; m &#947;</li><li class="src short"><a href="#v:bracket_">bracket_</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#946; -&gt; m &#947; -&gt; m &#947;</li><li class="src short"><a href="#v:bracketOnError">bracketOnError</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; (&#945; -&gt; m &#946;) -&gt; (&#945; -&gt; m &#947;) -&gt; m &#947;</li><li class="src short"><a href="#v:finally">finally</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#946; -&gt; m &#945;</li><li class="src short"><a href="#v:onException">onException</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#946; -&gt; m &#945;</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception.html">Control.Exception</a></p></div><h1 id="g:1">Throwing exceptions
</h1><div class="top"><p class="src"><a name="v:throwIO" class="def">throwIO</a> :: (<a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; e -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#throwIO" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:throwIO">throwIO</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:ioError" class="def">ioError</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#ioError" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:ioError">ioError</a></code>.
</p></div></div><h1 id="g:2">Catching exceptions
</h1><h2 id="g:3">The <code>catch</code> functions
</h2><div class="top"><p class="src"><a name="v:catch" class="def">catch</a><a href="src/Control-Exception-Lifted.html#catch" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; m &#945;</td><td class="doc"><p>The computation to run
</p></td></tr><tr><td class="src">-&gt; (e -&gt; m &#945;)</td><td class="doc"><p>Handler to invoke if an exception is raised
</p></td></tr><tr><td class="src">-&gt; m &#945;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:catch">catch</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:catches" class="def">catches</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; [<a href="Control-Exception-Lifted.html#t:Handler">Handler</a> m &#945;] -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#catches" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception.html#v:catches">catches</a></code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Handler" class="def">Handler</a> m &#945; <a href="src/Control-Exception-Lifted.html#Handler" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception.html#t:Handler">Handler</a></code>.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><span class="keyword">forall</span> e . <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e =&gt; <a name="v:Handler" class="def">Handler</a> (e -&gt; m &#945;)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:catchJust" class="def">catchJust</a><a href="src/Control-Exception-Lifted.html#catchJust" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;)</td><td class="doc"><p>Predicate to select exceptions
</p></td></tr><tr><td class="src">-&gt; m &#945;</td><td class="doc"><p>Computation to run
</p></td></tr><tr><td class="src">-&gt; (&#946; -&gt; m &#945;)</td><td class="doc"><p>Handler
</p></td></tr><tr><td class="src">-&gt; m &#945;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:catchJust">catchJust</a></code>.
</p></div></div><h2 id="g:4">The <code>handle</code> functions
</h2><div class="top"><p class="src"><a name="v:handle" class="def">handle</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; m &#945;) -&gt; m &#945; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#handle" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:handle">handle</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:handleJust" class="def">handleJust</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;) -&gt; (&#946; -&gt; m &#945;) -&gt; m &#945; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#handleJust" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:handleJust">handleJust</a></code>.
</p></div></div><h2 id="g:5">The <code>try</code> functions
</h2><div class="top"><p class="src"><a name="v:try" class="def">try</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; m &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Either.html#t:Either">Either</a> e &#945;)<a href="src/Control-Exception-Lifted.html#try" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:try">try</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:tryJust" class="def">tryJust</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e) =&gt; (e -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#946;) -&gt; m &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Either.html#t:Either">Either</a> &#946; &#945;)<a href="src/Control-Exception-Lifted.html#tryJust" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:tryJust">tryJust</a></code>.
</p></div></div><h2 id="g:6">The <code>evaluate</code> function
</h2><div class="top"><p class="src"><a name="v:evaluate" class="def">evaluate</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; &#945; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#evaluate" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:evaluate">evaluate</a></code>.
</p></div></div><h1 id="g:7">Asynchronous Exceptions
</h1><h2 id="g:8">Asynchronous exception control
</h2><div class="doc"><p>The following functions allow a thread to control delivery of
 asynchronous exceptions during a critical region.
</p></div><div class="top"><p class="src"><a name="v:mask" class="def">mask</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; ((<span class="keyword">forall</span> &#945;.  m &#945; -&gt; m &#945;) -&gt; m &#946;) -&gt; m &#946;<a href="src/Control-Exception-Lifted.html#mask" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:mask">mask</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:mask_" class="def">mask_</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#mask_" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:mask_">mask_</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:uninterruptibleMask" class="def">uninterruptibleMask</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; ((<span class="keyword">forall</span> &#945;.  m &#945; -&gt; m &#945;) -&gt; m &#946;) -&gt; m &#946;<a href="src/Control-Exception-Lifted.html#uninterruptibleMask" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:uninterruptibleMask">uninterruptibleMask</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:uninterruptibleMask_" class="def">uninterruptibleMask_</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#uninterruptibleMask_" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:uninterruptibleMask_">uninterruptibleMask_</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:getMaskingState" class="def">getMaskingState</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#t:MaskingState">MaskingState</a><a href="src/Control-Exception-Lifted.html#getMaskingState" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:getMaskingState">getMaskingState</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:blocked" class="def">blocked</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Exception-Lifted.html#blocked" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:blocked">blocked</a></code>.
 returns <code>True</code> if asynchronous exceptions are blocked in the
 current thread.
</p></div></div><h1 id="g:9">Brackets
</h1><div class="top"><p class="src"><a name="v:bracket" class="def">bracket</a><a href="src/Control-Exception-Lifted.html#bracket" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; m &#945;</td><td class="doc"><p>computation to run first (&quot;acquire resource&quot;)
</p></td></tr><tr><td class="src">-&gt; (&#945; -&gt; m &#946;)</td><td class="doc"><p>computation to run last (&quot;release resource&quot;)
</p></td></tr><tr><td class="src">-&gt; (&#945; -&gt; m &#947;)</td><td class="doc"><p>computation to run in-between
</p></td></tr><tr><td class="src">-&gt; m &#947;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracket">bracket</a></code>.  Note, any monadic side
 effects in <code>m</code> of the &quot;release&quot; computation will be discarded; it
 is run only for its side effects in <code>IO</code>.
</p><p>Note that when your <code>acquire</code> and <code>release</code> computations are of type <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a></code>
 it will be more efficient to write:
</p><pre><code><a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#v:liftBaseOp">liftBaseOp</a></code> (<code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracket">bracket</a></code> acquire release)</pre></div></div><div class="top"><p class="src"><a name="v:bracket_" class="def">bracket_</a><a href="src/Control-Exception-Lifted.html#bracket_" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; m &#945;</td><td class="doc"><p>computation to run first (&quot;acquire resource&quot;)
</p></td></tr><tr><td class="src">-&gt; m &#946;</td><td class="doc"><p>computation to run last (&quot;release resource&quot;)
</p></td></tr><tr><td class="src">-&gt; m &#947;</td><td class="doc"><p>computation to run in-between
</p></td></tr><tr><td class="src">-&gt; m &#947;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracket_">bracket_</a></code>.  Note, any monadic side
 effects in <code>m</code> of <em>both</em> the &quot;acquire&quot; and &quot;release&quot;
 computations will be discarded.  To keep the monadic side effects
 of the &quot;acquire&quot; computation, use <code><a href="Control-Exception-Lifted.html#v:bracket">bracket</a></code> with constant
 functions instead.
</p><p>Note that when your <code>acquire</code> and <code>release</code> computations are of type <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a></code>
 it will be more efficient to write:
</p><pre><code><a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#v:liftBaseOp_">liftBaseOp_</a></code> (<code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracket_">bracket_</a></code> acquire release)</pre></div></div><div class="top"><p class="src"><a name="v:bracketOnError" class="def">bracketOnError</a><a href="src/Control-Exception-Lifted.html#bracketOnError" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; m &#945;</td><td class="doc"><p>computation to run first (&quot;acquire resource&quot;)
</p></td></tr><tr><td class="src">-&gt; (&#945; -&gt; m &#946;)</td><td class="doc"><p>computation to run last (&quot;release resource&quot;)
</p></td></tr><tr><td class="src">-&gt; (&#945; -&gt; m &#947;)</td><td class="doc"><p>computation to run in-between
</p></td></tr><tr><td class="src">-&gt; m &#947;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracketOnError">bracketOnError</a></code>.  Note, any monadic side
 effects in <code>m</code> of the &quot;release&quot; computation will be discarded.
</p><p>Note that when your <code>acquire</code> and <code>release</code> computations are of type <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a></code>
 it will be more efficient to write:
</p><pre><code><a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#v:liftBaseOp">liftBaseOp</a></code> (<code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:bracketOnError">bracketOnError</a></code> acquire release)</pre></div></div><h1 id="g:10">Utilities
</h1><div class="top"><p class="src"><a name="v:finally" class="def">finally</a><a href="src/Control-Exception-Lifted.html#finally" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; m &#945;</td><td class="doc"><p>computation to run first
</p></td></tr><tr><td class="src">-&gt; m &#946;</td><td class="doc"><p>computation to run afterward (even if an exception was raised)
</p></td></tr><tr><td class="src">-&gt; m &#945;</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:finally">finally</a></code>.  Note, any monadic side
 effects in <code>m</code> of the &quot;afterward&quot; computation will be discarded.
</p></div></div><div class="top"><p class="src"><a name="v:onException" class="def">onException</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m &#945; -&gt; m &#946; -&gt; m &#945;<a href="src/Control-Exception-Lifted.html#onException" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Exception-Base.html#v:onException">onException</a></code>.  Note, any monadic side
 effects in <code>m</code> of the &quot;afterward&quot; computation will be discarded.
</p></div></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>