This file is indexed.

/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 &lt;ekmett@gmail.com&gt;</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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; m a -&gt; m a</li><li class="src short"><a href="#v:uninterruptibleMask_">uninterruptibleMask_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m =&gt; m a -&gt; m a</li><li class="src short"><a href="#v:catchAll">catchAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m =&gt; m a -&gt; (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -&gt; m a) -&gt; m a</li><li class="src short"><a href="#v:catchIOError">catchIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m =&gt; m a -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m a) -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; m a -&gt; (b -&gt; m a) -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; (e -&gt; m a) -&gt; 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 =&gt; <a href="#v:Handler">Handler</a> (e -&gt; 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) =&gt; m a -&gt; f (<a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a) -&gt; 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) =&gt; (e -&gt; m a) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:handleAll">handleAll</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m =&gt; (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -&gt; m a) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:handleIOError">handleIOError</a> :: <a href="Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m =&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m a) -&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; (b -&gt; m a) -&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; (e -&gt; m a) -&gt; m a -&gt; 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) =&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; m a -&gt; 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 =&gt; m a -&gt; m b -&gt; m a</li><li class="src short"><a href="#v:bracket">bracket</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m =&gt; m a -&gt; (a -&gt; m b) -&gt; (a -&gt; m c) -&gt; m c</li><li class="src short"><a href="#v:bracket_">bracket_</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m =&gt; m a -&gt; m b -&gt; m c -&gt; m c</li><li class="src short"><a href="#v:finally">finally</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m =&gt; m a -&gt; m b -&gt; m a</li><li class="src short"><a href="#v:bracketOnError">bracketOnError</a> :: <a href="Control-Monad-Catch.html#t:MonadMask">MonadMask</a> m =&gt; m a -&gt; (a -&gt; m b) -&gt; (a -&gt; m c) -&gt; 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) =&gt; <a href="#t:Exception">Exception</a> e <span class="keyword">where</span><ul class="subs"><li><a href="#v:toException">toException</a> :: e -&gt; <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> -&gt; <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 -&gt; <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 =&gt; <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 &gt;&gt; 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 =&gt; e -&gt; 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 &gt;&gt; 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">&nbsp;</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 =&gt; e -&gt; [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">&nbsp;</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 =&gt; e -&gt; <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">&nbsp;</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 =&gt; e -&gt; <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">&nbsp;</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 =&gt; e -&gt; <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">&nbsp;</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 =&gt; e -&gt; <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> =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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 =&gt; e -&gt; <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) =&gt; <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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; e -&gt; <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 =&gt; <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 =&gt; m a -&gt; (e -&gt; m a) -&gt; 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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a -&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a -&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> a) -&gt; <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> =&gt; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a -&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m a) -&gt; <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 =&gt; <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 =&gt; <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 -&gt; (e -&gt; <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) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a -&gt; (e -&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -&gt; <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 =&gt; <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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m a) -&gt; <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) =&gt; <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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m a) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <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 -&gt; (e -&gt; <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) -&gt; <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 =&gt; <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">&nbsp;</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 =&gt; <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 -&gt; (e -&gt; <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) -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -&gt; <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) =&gt; <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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a -&gt; (e -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -&gt; <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 =&gt; <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 -&gt; m a) -&gt; m b) -&gt; 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 -&gt; m a) -&gt; m b) -&gt; 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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> b) -&gt; <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> =&gt; <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 -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Either.html#t:Either">Either</a> e b) -&gt; <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 =&gt; <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 -&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b) -&gt; <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 -&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m a) -&gt; <a href="Control-Monad-Catch-Pure.html#t:CatchT">CatchT</a> m b) -&gt; <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 =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m b) -&gt; <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 =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m b) -&gt; <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) =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m b) -&gt; <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) =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m b) -&gt; <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 =&gt; <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">&nbsp;</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 -&gt; <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) -&gt; <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) -&gt; <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 -&gt; <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) -&gt; <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) -&gt; <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 =&gt; <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">&nbsp;</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 -&gt; <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) -&gt; <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) -&gt; <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 -&gt; <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) -&gt; <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) -&gt; <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) =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m b) -&gt; <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) =&gt; <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">&nbsp;</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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b) -&gt; <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 -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) -&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m b) -&gt; <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 =&gt; m a -&gt; 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 =&gt; m a -&gt; 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 =&gt; m a -&gt; (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -&gt; m a) -&gt; 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 =&gt; m a -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m a) -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; m a -&gt; (b -&gt; m a) -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; (e -&gt; m a) -&gt; 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 =&gt; <a id="v:Handler" class="def">Handler</a> (e -&gt; m a)</td><td class="doc empty">&nbsp;</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 =&gt; <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">&nbsp;</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 -&gt; b) -&gt; <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a -&gt; <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-">(&lt;$)</a> :: a -&gt; <a href="Control-Monad-Catch.html#t:Handler">Handler</a> m b -&gt; <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) =&gt; m a -&gt; f (<a href="Control-Monad-Catch.html#t:Handler">Handler</a> m a) -&gt; 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) =&gt; (e -&gt; m a) -&gt; m a -&gt; 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 =&gt; (<a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -&gt; m a) -&gt; m a -&gt; 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 =&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Error.html#t:IOError">IOError</a> -&gt; m a) -&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; (b -&gt; m a) -&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; (e -&gt; m a) -&gt; m a -&gt; 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) =&gt; m a -&gt; 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) =&gt; (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -&gt; m a -&gt; 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 =&gt; m a -&gt; m b -&gt; 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 =&gt; m a -&gt; (a -&gt; m b) -&gt; (a -&gt; m c) -&gt; 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 &quot;acquires&quot; some value, which
 is &quot;released&quot; by the second action at the end. The third action &quot;uses&quot;
 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 =&gt; m a -&gt; m b -&gt; m c -&gt; 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 =&gt; m a -&gt; m b -&gt; 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 =&gt; m a -&gt; (a -&gt; m b) -&gt; (a -&gt; m c) -&gt; 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) =&gt; <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&gt; throw ThisException `catch` \e -&gt; putStrLn (&quot;Caught &quot; ++ 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 =&gt; SomeCompilerException e
    deriving Typeable

instance Show SomeCompilerException where
    show (SomeCompilerException e) = show e

instance Exception SomeCompilerException

compilerExceptionToException :: Exception e =&gt; e -&gt; SomeException
compilerExceptionToException = toException . SomeCompilerException

compilerExceptionFromException :: Exception e =&gt; SomeException -&gt; Maybe e
compilerExceptionFromException x = do
    SomeCompilerException a &lt;- fromException x
    cast a

---------------------------------------------------------------------
-- Make a subhierarchy for exceptions in the frontend of the compiler

data SomeFrontendException = forall e . Exception e =&gt; SomeFrontendException e
    deriving Typeable

instance Show SomeFrontendException where
    show (SomeFrontendException e) = show e

instance Exception SomeFrontendException where
    toException = compilerExceptionToException
    fromException = compilerExceptionFromException

frontendExceptionToException :: Exception e =&gt; e -&gt; SomeException
frontendExceptionToException = toException . SomeFrontendException

frontendExceptionFromException :: Exception e =&gt; SomeException -&gt; Maybe e
frontendExceptionFromException x = do
    SomeFrontendException a &lt;- 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&gt; throw MismatchedParentheses <code>catch</code> e -&gt; putStrLn (&quot;Caught &quot; ++ show (e :: MismatchedParentheses))
Caught MismatchedParentheses
*Main&gt; throw MismatchedParentheses <code>catch</code> e -&gt; putStrLn (&quot;Caught &quot; ++ show (e :: SomeFrontendException))
Caught MismatchedParentheses
*Main&gt; throw MismatchedParentheses <code>catch</code> e -&gt; putStrLn (&quot;Caught &quot; ++ show (e :: SomeCompilerException))
Caught MismatchedParentheses
*Main&gt; throw MismatchedParentheses <code>catch</code> e -&gt; putStrLn (&quot;Caught &quot; ++ 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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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">&nbsp;</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">&nbsp;</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> -&gt; <a href="Control-Monad-Catch.html#t:SomeException">SomeException</a> -&gt; <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> -&gt; <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>] -&gt; <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">&nbsp;</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> -&gt; <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> -&gt; <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> -&gt; <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>