/usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html is in libghc-exceptions-doc 0.8.3-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | <!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.Monad.Catch</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Monad-Catch.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Monad-Catch.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">exceptions-0.8.3: Extensible optionally-pure exceptions</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(C) Edward Kmett 2013-2015, (c) Google Inc. 2012</td></tr><tr><th>License</th><td>BSD-style (see the file LICENSE)</td></tr><tr><th>Maintainer</th><td>Edward Kmett <ekmett@gmail.com></td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>non-portable</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Monad.Catch</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Typeclass</a></li><li><a href="#g:2">Utilities</a></li><li><a href="#g:3">Re-exports from Control.Exception</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module supports monads that can throw extensible exceptions. The
exceptions are the very same from <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>, and the operations
offered very similar, but here they are not limited to <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code>.</p><p>This code is in the style of both transformers and mtl, and is compatible
with them, though doesn't mimic the module structure or offer the complete
range of features in those packages.</p><p>This is very similar to <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a></code> and <code>MonadError</code>, but based on features of
<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>. In particular, it handles the complex case of
asynchronous exceptions by including <code><a href="Control-Monad-Catch.html#v:mask">mask</a></code> in the typeclass. Note that the
extensible exceptions feature relies on the RankNTypes language extension.</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">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="#t:MonadThrow">MonadThrow</a> m <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="#t:MonadCatch">MonadCatch</a> m <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="#t:MonadMask">MonadMask</a> m <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:mask_">mask_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m a</li><li class="src short"><a href="#v:uninterruptibleMask_">uninterruptibleMask_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m a</li><li class="src short"><a href="#v:catchAll">catchAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> m a) -> m a</li><li class="src short"><a href="#v:catchIOError">catchIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -> m a) -> m a</li><li class="src short"><a href="#v:catchJust">catchJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> m a -> (b -> m a) -> m a</li><li class="src short"><a href="#v:catchIf">catchIf</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -> m a -> (e -> m a) -> m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Handler">Handler</a> m a = <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="#v:Handler">Handler</a> (e -> m a)</li><li class="src short"><a href="#v:catches">catches</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m) => m a -> f (<a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a) -> m a</li><li class="src short"><a href="#v:handle">handle</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> m a) -> m a -> m a</li><li class="src short"><a href="#v:handleAll">handleAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> m a) -> m a -> m a</li><li class="src short"><a href="#v:handleIOError">handleIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -> m a) -> m a -> m a</li><li class="src short"><a href="#v:handleJust">handleJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> (b -> m a) -> m a -> m a</li><li class="src short"><a href="#v:handleIf">handleIf</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (e -> m a) -> m a -> m a</li><li class="src short"><a href="#v:try">try</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => m a -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a)</li><li class="src short"><a href="#v:tryJust">tryJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> m a -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> b a)</li><li class="src short"><a href="#v:onException">onException</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> m b -> m a</li><li class="src short"><a href="#v:bracket">bracket</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> (a -> m b) -> (a -> m c) -> m c</li><li class="src short"><a href="#v:bracket_">bracket_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m b -> m c -> m c</li><li class="src short"><a href="#v:finally">finally</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m b -> m a</li><li class="src short"><a href="#v:bracketOnError">bracketOnError</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> (a -> m b) -> (a -> m c) -> m c</li><li class="src short"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> e, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:Show">Show</a> e) => <a href="#t:Exception">Exception</a> e <span class="keyword">where</span><ul class="subs"><li><a href="#v:toException">toException</a> :: e -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></li><li><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> e</li><li><a href="#v:displayException">displayException</a> :: e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:SomeException">SomeException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <span class="keyword">where</span><ul class="subs"><li><a href="#v:SomeException">SomeException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></li></ul></li></ul></div><div id="interface"><h1 id="g:1">Typeclass</h1><div class="doc"><p>The mtl style typeclass</p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a id="t:MonadThrow" class="def">MonadThrow</a> m <span class="keyword">where</span> <a href="src/Control-Monad-Catch.html#MonadThrow" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></p><div class="doc"><p>A class for monads in which exceptions may be thrown.</p><p>Instances should obey the following law:</p><pre>throwM e >> x = throwM e</pre><p>In other words, throwing an exception short-circuits the rest of the monadic
computation.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Monad-Catch.html#v:throwM">throwM</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:throwM" class="def">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p><div class="doc"><p>Throw an exception. Note that this throws when this action is run in
the monad <code>m</code>, not when it is applied. It is a generalization of
<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:throwIO">throwIO</a></code>.</p><p>Should satisfy the law:</p><pre>throwM e >> f = throwM e</pre></div></div><div class="subs instances"><p id="control.i:MonadThrow" class="caption collapser" onclick="toggleSection('i:MonadThrow')">Instances</p><div id="section.i:MonadThrow" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:1" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:1')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> []</span> <a href="src/Control-Monad-Catch.html#line-182" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> [a] <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:2" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:2')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a></span> <a href="src/Control-Monad-Catch.html#line-184" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:3" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:3')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></span> <a href="src/Control-Monad-Catch.html#line-189" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:4" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:4')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a></span> <a href="src/Control-Monad-Catch.html#line-186" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:5" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:5')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a></span> <a href="src/Control-Monad-Catch.html#line-197" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:6" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:6')"></span> (~) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> e <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e)</span> <a href="src/Control-Monad-Catch.html#line-202" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:7" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:7')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-321" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:8" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:8')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-327" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc"><p>Throws exceptions into the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:9" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:9')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-149" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:10" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:10')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m)</span> <a href="src/Control-Monad-Catch.html#line-341" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc"><p>Throws exceptions into the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:11" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:11')"></span> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:Error">Error</a> e, <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m) => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m)</span> <a href="src/Control-Monad-Catch.html#line-334" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc"><p>Throws exceptions into the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:12" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:12')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-229" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:13" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:13')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-242" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:14" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:14')"></span> (<a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-281" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:15" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:15')"></span> (<a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-268" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:16" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:16')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m)</span> <a href="src/Control-Monad-Catch.html#line-216" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:17" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:17')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Cont.html#t:ContT">ContT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m)</span> <a href="src/Control-Monad-Catch.html#line-347" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Cont.html#t:ContT">ContT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:18" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:18')"></span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m)</span> <a href="src/Control-Monad-Catch.html#line-255" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:19" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:19')"></span> (<a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-294" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadThrow:MonadThrow:20" class="instance expander" onclick="toggleSection('i:ic:MonadThrow:MonadThrow:20')"></span> (<a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-307" class="link">Source</a> <a href="#t:MonadThrow" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadThrow:MonadThrow:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwM">throwM</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a <a href="src/Control-Monad-Catch.html#throwM" class="link">Source</a> <a href="#v:throwM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a id="t:MonadCatch" class="def">MonadCatch</a> m <span class="keyword">where</span> <a href="src/Control-Monad-Catch.html#MonadCatch" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></p><div class="doc"><p>A class for monads which allow exceptions to be caught, in particular
exceptions which were thrown by <code><a href="Control-Monad-Catch.html#v:throwM">throwM</a></code>.</p><p>Instances should obey the following law:</p><pre>catch (throwM e) f = f e</pre><p>Note that the ability to catch an exception does <em>not</em> guarantee that we can
deal with all possible exit points from a computation. Some monads, such as
continuation-based stacks, allow for more than just a success/failure
strategy, and therefore <code>catch</code> <em>cannot</em> be used by those monads to properly
implement a function such as <code>finally</code>. For more information, see
<code><a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a></code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Monad-Catch.html#v:catch">catch</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:catch" class="def">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => m a -> (e -> m a) -> m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p><div class="doc"><p>Provide a handler for exceptions thrown during execution of the first
action. Note that type of the type of the argument to the handler will
constrain which exceptions are caught. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:catch">catch</a></code>.</p></div></div><div class="subs instances"><p id="control.i:MonadCatch" class="caption collapser" onclick="toggleSection('i:MonadCatch')">Instances</p><div id="section.i:MonadCatch" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:1" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:1')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></span> <a href="src/Control-Monad-Catch.html#line-191" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a -> (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:2" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:2')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a></span> <a href="src/Control-Monad-Catch.html#line-199" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a -> (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:3" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:3')"></span> (~) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> e <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e)</span> <a href="src/Control-Monad-Catch.html#line-205" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc"><p><em>Since: 0.8.3</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a -> (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:4" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:4')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-323" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:5" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:5')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-330" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc"><p>Catches exceptions from the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m a -> (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:6" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-151" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a -> (e -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:7" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:7')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m)</span> <a href="src/Control-Monad-Catch.html#line-344" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc"><p>Catches exceptions from the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:8" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:8')"></span> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:Error">Error</a> e, <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m) => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m)</span> <a href="src/Control-Monad-Catch.html#line-337" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc"><p>Catches exceptions from the base monad.</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:9" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:9')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-231" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:10" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:10')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-244" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:11" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:11')"></span> (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-283" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:12" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:12')"></span> (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-270" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:13" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:13')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m)</span> <a href="src/Control-Monad-Catch.html#line-218" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a -> (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:14" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:14')"></span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m)</span> <a href="src/Control-Monad-Catch.html#line-257" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:15" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:15')"></span> (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-296" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadCatch:MonadCatch:16" class="instance expander" onclick="toggleSection('i:ic:MonadCatch:MonadCatch:16')"></span> (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-309" class="link">Source</a> <a href="#t:MonadCatch" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadCatch:MonadCatch:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:catch">catch</a> :: <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a -> (e -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a <a href="src/Control-Monad-Catch.html#catch" class="link">Source</a> <a href="#v:catch" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a id="t:MonadMask" class="def">MonadMask</a> m <span class="keyword">where</span> <a href="src/Control-Monad-Catch.html#MonadMask" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></p><div class="doc"><p>A class for monads which provide for the ability to account for all
possible exit points from a computation, and to mask asynchronous
exceptions. Continuation-based monads, and stacks such as <code>ErrorT e IO</code>
which provide for multiple failure modes, are invalid instances of this
class.</p><p>Note that this package <em>does</em> provide a <code>MonadMask</code> instance for <code>CatchT</code>.
This instance is <em>only</em> valid if the base monad provides no ability to
provide multiple exit. For example, <code>IO</code> or <code>Either</code> would be invalid base
monads, but <code>Reader</code> or <code>State</code> would be acceptable.</p><p>Instances should ensure that, in the following code:</p><pre>f `finally` g</pre><p>The action <code>g</code> is called regardless of what occurs within <code>f</code>, including
async exceptions.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Monad-Catch.html#v:mask">mask</a>, <a href="Control-Monad-Catch.html#v:uninterruptibleMask">uninterruptibleMask</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:mask" class="def">mask</a> :: ((<span class="keyword">forall</span> a. m a -> m a) -> m b) -> m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><div class="doc"><p>Runs an action with asynchronous exceptions disabled. The action is
provided a method for restoring the async. environment to what it was
at the <code><a href="Control-Monad-Catch.html#v:mask">mask</a></code> call. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:mask">mask</a></code>.</p></div><p class="src"><a id="v:uninterruptibleMask" class="def">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. m a -> m a) -> m b) -> m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Control-Monad-Catch.html#v:mask">mask</a></code>, but the masked computation is not interruptible (see
<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:uninterruptibleMask">uninterruptibleMask</a></code>. WARNING:
Only use if you need to mask exceptions around an interruptible operation
AND you can guarantee the interruptible operation will only block for a
short period of time. Otherwise you render the program/thread unresponsive
and/or unkillable.</p></div></div><div class="subs instances"><p id="control.i:MonadMask" class="caption collapser" onclick="toggleSection('i:MonadMask')">Instances</p><div id="section.i:MonadMask" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:1" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:1')"></span> <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></span> <a href="src/Control-Monad-Catch.html#line-193" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:2" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:2')"></span> (~) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> e <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e)</span> <a href="src/Control-Monad-Catch.html#line-212" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc"><p><em>Since: 0.8.3</em></p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:3" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m)</span> <a href="src/Control-Monad-Catch.html#line-159" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc"><p>Note: This instance is only valid if the underlying monad has a single
exit point!</p></td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b) -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b) -> <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:4" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:4')"></span> <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-233" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:5" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:5')"></span> <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m)</span> <a href="src/Control-Monad-Catch.html#line-246" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:6" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:6')"></span> (<a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-285" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:7" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:7')"></span> (<a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m)</span> <a href="src/Control-Monad-Catch.html#line-272" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:8" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:8')"></span> <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m)</span> <a href="src/Control-Monad-Catch.html#line-220" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m a) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m b) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.5.2.0/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:9" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:9')"></span> <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m)</span> <a href="src/Control-Monad-Catch.html#line-259" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> r m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:10" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:10')"></span> (<a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-298" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadMask:MonadMask:11" class="instance expander" onclick="toggleSection('i:ic:MonadMask:MonadMask:11')"></span> (<a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> w) => <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m)</span> <a href="src/Control-Monad-Catch.html#line-311" class="link">Source</a> <a href="#t:MonadMask" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:MonadMask:MonadMask:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mask">mask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b <a href="src/Control-Monad-Catch.html#mask" class="link">Source</a> <a href="#v:mask" class="selflink">#</a></p><p class="src"><a href="#v:uninterruptibleMask">uninterruptibleMask</a> :: ((<span class="keyword">forall</span> a. <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b) -> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b <a href="src/Control-Monad-Catch.html#uninterruptibleMask" class="link">Source</a> <a href="#v:uninterruptibleMask" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:2">Utilities</h1><div class="doc"><p>These functions follow those from <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>, except that they are
based on methods from the <code><a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> typeclass. See
<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a> for API usage.</p></div><div class="top"><p class="src"><a id="v:mask_" class="def">mask_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m a <a href="src/Control-Monad-Catch.html#mask_" class="link">Source</a> <a href="#v:mask_" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Control-Monad-Catch.html#v:mask">mask</a></code>, but does not pass a <code>restore</code> action to the argument.</p></div></div><div class="top"><p class="src"><a id="v:uninterruptibleMask_" class="def">uninterruptibleMask_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m a <a href="src/Control-Monad-Catch.html#uninterruptibleMask_" class="link">Source</a> <a href="#v:uninterruptibleMask_" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Control-Monad-Catch.html#v:uninterruptibleMask">uninterruptibleMask</a></code>, but does not pass a <code>restore</code> action to the
argument.</p></div></div><div class="top"><p class="src"><a id="v:catchAll" class="def">catchAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> m a) -> m a <a href="src/Control-Monad-Catch.html#catchAll" class="link">Source</a> <a href="#v:catchAll" class="selflink">#</a></p><div class="doc"><p>Catches all exceptions, and somewhat defeats the purpose of the extensible
exception system. Use sparingly.</p></div></div><div class="top"><p class="src"><a id="v:catchIOError" class="def">catchIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -> m a) -> m a <a href="src/Control-Monad-Catch.html#catchIOError" class="link">Source</a> <a href="#v:catchIOError" class="selflink">#</a></p><div class="doc"><p>Catch all <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a></code> (eqv. <code>IOException</code>) exceptions. Still somewhat too
general, but better than using <code><a href="Control-Monad-Catch.html#v:catchAll">catchAll</a></code>. See <code><a href="Control-Monad-Catch.html#v:catchIf">catchIf</a></code> for an easy way
of catching specific <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a></code>s based on the predicates in <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html">System.IO.Error</a>.</p></div></div><div class="top"><p class="src"><a id="v:catchJust" class="def">catchJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> m a -> (b -> m a) -> m a <a href="src/Control-Monad-Catch.html#catchJust" class="link">Source</a> <a href="#v:catchJust" class="selflink">#</a></p><div class="doc"><p>A more generalized way of determining which exceptions to catch at
run time.</p></div></div><div class="top"><p class="src"><a id="v:catchIf" class="def">catchIf</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -> m a -> (e -> m a) -> m a <a href="src/Control-Monad-Catch.html#catchIf" class="link">Source</a> <a href="#v:catchIf" class="selflink">#</a></p><div class="doc"><p>Catch exceptions only if they pass some predicate. Often useful with the
predicates for testing <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a></code> values in <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html">System.IO.Error</a>.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Handler" class="def">Handler</a> m a <a href="src/Control-Monad-Catch.html#Handler" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></p><div class="doc"><p>Generalized version of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.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"><a href="Control-Monad-Catch.html#t:Exception">Exception</a> e => <a id="v:Handler" class="def">Handler</a> (e -> m a)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Handler" class="caption collapser" onclick="toggleSection('i:Handler')">Instances</p><div id="section.i:Handler" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Functor:1" class="instance expander" onclick="toggleSection('i:id:Handler:Functor:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Control-Monad-Catch.html#t:Handler">Handler</a> m)</span> <a href="src/Control-Monad-Catch.html#line-427" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -> b) -> <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a -> <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(<$)</a> :: a -> <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m b -> <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:catches" class="def">catches</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m) => m a -> f (<a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a) -> m a <a href="src/Control-Monad-Catch.html#catches" class="link">Source</a> <a href="#v:catches" class="selflink">#</a></p><div class="doc"><p>Catches different sorts of exceptions. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html#v:catches">catches</a></code></p></div></div><div class="top"><p class="src"><a id="v:handle" class="def">handle</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> m a) -> m a -> m a <a href="src/Control-Monad-Catch.html#handle" class="link">Source</a> <a href="#v:handle" class="selflink">#</a></p><div class="doc"><p>Flipped <code><a href="Control-Monad-Catch.html#v:catch">catch</a></code>. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:handle">handle</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:handleAll" class="def">handleAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> m a) -> m a -> m a <a href="src/Control-Monad-Catch.html#handleAll" class="link">Source</a> <a href="#v:handleAll" class="selflink">#</a></p><div class="doc"><p>Flipped <code><a href="Control-Monad-Catch.html#v:catchAll">catchAll</a></code></p></div></div><div class="top"><p class="src"><a id="v:handleIOError" class="def">handleIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -> m a) -> m a -> m a <a href="src/Control-Monad-Catch.html#handleIOError" class="link">Source</a> <a href="#v:handleIOError" class="selflink">#</a></p><div class="doc"><p>Flipped <code><a href="Control-Monad-Catch.html#v:catchIOError">catchIOError</a></code></p></div></div><div class="top"><p class="src"><a id="v:handleJust" class="def">handleJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> (b -> m a) -> m a -> m a <a href="src/Control-Monad-Catch.html#handleJust" class="link">Source</a> <a href="#v:handleJust" class="selflink">#</a></p><div class="doc"><p>Flipped <code><a href="Control-Monad-Catch.html#v:catchJust">catchJust</a></code>. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:handleJust">handleJust</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:handleIf" class="def">handleIf</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -> (e -> m a) -> m a -> m a <a href="src/Control-Monad-Catch.html#handleIf" class="link">Source</a> <a href="#v:handleIf" class="selflink">#</a></p><div class="doc"><p>Flipped <code><a href="Control-Monad-Catch.html#v:catchIf">catchIf</a></code></p></div></div><div class="top"><p class="src"><a id="v:try" class="def">try</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => m a -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) <a href="src/Control-Monad-Catch.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p><div class="doc"><p>Similar to <code><a href="Control-Monad-Catch.html#v:catch">catch</a></code>, but returns an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a></code> result. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html#v:try">try</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:tryJust" class="def">tryJust</a> :: (<a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m, <a href="Control-Monad-Catch.html#t:Exception">Exception</a> e) => (e -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> m a -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> b a) <a href="src/Control-Monad-Catch.html#tryJust" class="link">Source</a> <a href="#v:tryJust" class="selflink">#</a></p><div class="doc"><p>A variant of <code><a href="Control-Monad-Catch.html#v:try">try</a></code> that takes an exception predicate to select
which exceptions are caught. See <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html">Control.Exception</a>'s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#v:tryJust">tryJust</a></code></p></div></div><div class="top"><p class="src"><a id="v:onException" class="def">onException</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => m a -> m b -> m a <a href="src/Control-Monad-Catch.html#onException" class="link">Source</a> <a href="#v:onException" class="selflink">#</a></p><div class="doc"><p>Run an action only if an exception is thrown in the main action. The
exception is not caught, simply rethrown.</p></div></div><div class="top"><p class="src"><a id="v:bracket" class="def">bracket</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> (a -> m b) -> (a -> m c) -> m c <a href="src/Control-Monad-Catch.html#bracket" class="link">Source</a> <a href="#v:bracket" class="selflink">#</a></p><div class="doc"><p>Generalized abstracted pattern of safe resource acquisition and release
in the face of exceptions. The first action "acquires" some value, which
is "released" by the second action at the end. The third action "uses"
the value and its result is the result of the <code><a href="Control-Monad-Catch.html#v:bracket">bracket</a></code>.</p><p>If an exception occurs during the use, the release still happens before the
exception is rethrown.</p></div></div><div class="top"><p class="src"><a id="v:bracket_" class="def">bracket_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m b -> m c -> m c <a href="src/Control-Monad-Catch.html#bracket_" class="link">Source</a> <a href="#v:bracket_" class="selflink">#</a></p><div class="doc"><p>Version of <code><a href="Control-Monad-Catch.html#v:bracket">bracket</a></code> without any value being passed to the second and
third actions.</p></div></div><div class="top"><p class="src"><a id="v:finally" class="def">finally</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> m b -> m a <a href="src/Control-Monad-Catch.html#finally" class="link">Source</a> <a href="#v:finally" class="selflink">#</a></p><div class="doc"><p>Perform an action with a finalizer action that is run, even if an
exception occurs.</p></div></div><div class="top"><p class="src"><a id="v:bracketOnError" class="def">bracketOnError</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m => m a -> (a -> m b) -> (a -> m c) -> m c <a href="src/Control-Monad-Catch.html#bracketOnError" class="link">Source</a> <a href="#v:bracketOnError" class="selflink">#</a></p><div class="doc"><p>Like <code><a href="Control-Monad-Catch.html#v:bracket">bracket</a></code>, but only performs the final action if there was an
exception raised by the in-between computation.</p></div></div><h1 id="g:3">Re-exports from Control.Exception</h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> e, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:Show">Show</a> e) => <a id="t:Exception" class="def">Exception</a> e <span class="keyword">where</span> <a href="#t:Exception" class="selflink">#</a></p><div class="doc"><p>Any type that you wish to throw or catch as an exception must be an
instance of the <code>Exception</code> class. The simplest case is a new exception
type directly below the root:</p><pre>data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException</pre><p>The default method definitions in the <code>Exception</code> class do what we need
in this case. You can now throw and catch <code>ThisException</code> and
<code>ThatException</code> as exceptions:</p><pre>*Main> throw ThisException `catch` \e -> putStrLn ("Caught " ++ show (e :: MyException))
Caught ThisException
</pre><p>In more complicated examples, you may wish to define a whole hierarchy
of exceptions:</p><pre>---------------------------------------------------------------------
-- Make the root exception type for all the exceptions in a compiler
data SomeCompilerException = forall e . Exception e => SomeCompilerException e
deriving Typeable
instance Show SomeCompilerException where
show (SomeCompilerException e) = show e
instance Exception SomeCompilerException
compilerExceptionToException :: Exception e => e -> SomeException
compilerExceptionToException = toException . SomeCompilerException
compilerExceptionFromException :: Exception e => SomeException -> Maybe e
compilerExceptionFromException x = do
SomeCompilerException a <- fromException x
cast a
---------------------------------------------------------------------
-- Make a subhierarchy for exceptions in the frontend of the compiler
data SomeFrontendException = forall e . Exception e => SomeFrontendException e
deriving Typeable
instance Show SomeFrontendException where
show (SomeFrontendException e) = show e
instance Exception SomeFrontendException where
toException = compilerExceptionToException
fromException = compilerExceptionFromException
frontendExceptionToException :: Exception e => e -> SomeException
frontendExceptionToException = toException . SomeFrontendException
frontendExceptionFromException :: Exception e => SomeException -> Maybe e
frontendExceptionFromException x = do
SomeFrontendException a <- fromException x
cast a
---------------------------------------------------------------------
-- Make an exception type for a particular frontend compiler exception
data MismatchedParentheses = MismatchedParentheses
deriving (Typeable, Show)
instance Exception MismatchedParentheses where
toException = frontendExceptionToException
fromException = frontendExceptionFromException</pre><p>We can now catch a <code>MismatchedParentheses</code> exception as
<code>MismatchedParentheses</code>, <code>SomeFrontendException</code> or
<code>SomeCompilerException</code>, but not other types, e.g. <code>IOException</code>:</p><pre>*Main> throw MismatchedParentheses <code>catch</code> e -> putStrLn ("Caught " ++ show (e :: MismatchedParentheses))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses <code>catch</code> e -> putStrLn ("Caught " ++ show (e :: SomeFrontendException))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses <code>catch</code> e -> putStrLn ("Caught " ++ show (e :: SomeCompilerException))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses <code>catch</code> e -> putStrLn ("Caught " ++ show (e :: IOException))
*** Exception: MismatchedParentheses
</pre></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src">Nothing</p></div><div class="subs instances"><p id="control.i:Exception" class="caption collapser" onclick="toggleSection('i:Exception')">Instances</p><div id="section.i:Exception" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:1" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:1')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Void.html#t:Void">Void</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:2" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:2')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:3" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:3')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:4" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:4')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecConError">RecConError</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecConError">RecConError</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecConError">RecConError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecConError">RecConError</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:5" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:5')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:6" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:6')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:7" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:7')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:TypeError">TypeError</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:TypeError">TypeError</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:TypeError">TypeError</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:TypeError">TypeError</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:8" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:8')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:9" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:9')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:10" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:10')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:11" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:11')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:12" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:12')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:13" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:13')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:14" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:14')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:15" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:15')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:SomeAsyncException">SomeAsyncException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:SomeAsyncException">SomeAsyncException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:SomeAsyncException">SomeAsyncException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:SomeAsyncException">SomeAsyncException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:16" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:16')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:17" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:17')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:18" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:18')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Exit.html#t:ExitCode">ExitCode</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Exit.html#t:ExitCode">ExitCode</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-Exit.html#t:ExitCode">ExitCode</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:19" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:19')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:IOException">IOException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:IOException">IOException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:IOException">IOException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:IOException">IOException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:20" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:20')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:21" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:21')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArithException">ArithException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArithException">ArithException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Exception:Exception:22" class="instance expander" onclick="toggleSection('i:ic:Exception:Exception:22')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Exception:Exception:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:SomeException" class="def">SomeException</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Kind.html#t:-42-">*</a> <span class="keyword">where</span> <a href="#t:SomeException" class="selflink">#</a></p><div class="doc"><p>The <code>SomeException</code> type is the root of the exception type hierarchy.
When an exception of type <code>e</code> is thrown, behind the scenes it is
encapsulated in a <code>SomeException</code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:SomeException" class="def">SomeException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:SomeException" class="caption collapser" onclick="toggleSection('i:SomeException')">Instances</p><div id="section.i:SomeException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SomeException:Show:1" class="instance expander" onclick="toggleSection('i:id:SomeException:Show:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:Show">Show</a> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SomeException:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a>] -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:SomeException:Exception:2" class="instance expander" onclick="toggleSection('i:id:SomeException:Exception:2')"></span> <a href="Control-Monad-Catch.html#t:Exception">Exception</a> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a></span></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:SomeException:Exception:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toException">toException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:toException" class="selflink">#</a></p><p class="src"><a href="#v:fromException">fromException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> <a href="#v:fromException" class="selflink">#</a></p><p class="src"><a href="#v:displayException">displayException</a> :: <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:displayException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>
|