/usr/share/doc/libghc-lens-doc/html/Control-Exception-Lens.html is in libghc-lens-doc 4.15.4-1.
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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Exception.Lens</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-Exception-Lens.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Exception-Lens.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">lens-4.15.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(C) 2012-16 Edward Kmett</td></tr><tr><th>License</th><td>BSD-style (see the file LICENSE)</td></tr><tr><th>Maintainer</th><td>Edward Kmett <ekmett@gmail.com></td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>Control.Exception</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Exception.Lens</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Handling</a></li><li><a href="#g:2">Trying</a></li><li><a href="#g:3">Throwing</a></li><li><a href="#g:4">Mapping</a></li><li><a href="#g:5">Exceptions</a></li><li><a href="#g:6">Exception Handlers</a><ul><li><a href="#g:7">IOExceptions</a></li><li><a href="#g:8">Arithmetic Exceptions</a></li><li><a href="#g:9">Array Exceptions</a></li><li><a href="#g:10">Assertion Failed</a></li><li><a href="#g:11">Async Exceptions</a></li><li><a href="#g:12">Non-Termination</a></li><li><a href="#g:13">Nested Atomically</a></li><li><a href="#g:14">Blocked Indefinitely</a><ul><li><a href="#g:15">on MVar</a></li><li><a href="#g:16">on STM</a></li></ul></li><li><a href="#g:17">Deadlock</a></li><li><a href="#g:18">No Such Method</a></li><li><a href="#g:19">Pattern Match Failure</a></li><li><a href="#g:20">Record</a></li><li><a href="#g:21">Error Call</a></li><li><a href="#g:22">Allocation Limit Exceeded</a></li><li><a href="#g:23">Type Error</a></li></ul></li><li><a href="#g:24">Handling Exceptions</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><code>Control.Exception</code> provides an example of a large open hierarchy
that we can model with prisms and isomorphisms.</p><p>Additional combinators for working with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code> results can
be found in <a href="System-IO-Error-Lens.html">System.IO.Error.Lens</a>.</p><p>The combinators in this module have been generalized to work with
<code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> instead of just <code>IO</code>. This enables them to be used
more easily in <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a></code> transformer stacks.</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"><a href="#v:catching">catching</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> (a -> m r) -> m r</li><li class="src short"><a href="#v:catching_">catching_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m r -> m r</li><li class="src short"><a href="#v:handling">handling</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> (a -> m r) -> m r -> m r</li><li class="src short"><a href="#v:handling_">handling_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m r -> m r</li><li class="src short"><a href="#v:trying">trying</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> a r)</li><li class="src short"><a href="#v:trying_">trying_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> r)</li><li class="src short"><a href="#v:throwing">throwing</a> :: <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> r</li><li class="src short"><a href="#v:throwing_">throwing_</a> :: <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () -> m x</li><li class="src short"><a href="#v:throwingM">throwingM</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> m r</li><li class="src short"><a href="#v:throwingTo">throwingTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -> <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> m ()</li><li class="src short"><a href="#v:mappedException">mappedException</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e') => <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s e e'</li><li class="src short"><a href="#v:mappedException-39-">mappedException'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e' => <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> e'</li><li class="src short"><a href="#v:exception">exception</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> a => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Exception">Exception</a> :: <span class="keyword">forall</span> t. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> t => t -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:Handleable">Handleable</a> e m h | h -> e m <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:AsIOException">AsIOException</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:IOException_">IOException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsIOException">AsIOException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsArithException">AsArithException</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:_Overflow">_Overflow</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_Underflow">_Underflow</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_LossOfPrecision">_LossOfPrecision</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_DivideByZero">_DivideByZero</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_Denormal">_Denormal</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_RatioZeroDenominator">_RatioZeroDenominator</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:ArithException_">ArithException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Overflow_">Overflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Underflow_">Underflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:LossOfPrecision_">LossOfPrecision_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:DivideByZero_">DivideByZero_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Denormal_">Denormal_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:RatioZeroDenominator_">RatioZeroDenominator_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsArrayException">AsArrayException</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:_IndexOutOfBounds">_IndexOutOfBounds</a> :: <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:_UndefinedElement">_UndefinedElement</a> :: <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:ArrayException_">ArrayException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:IndexOutOfBounds_">IndexOutOfBounds_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:UndefinedElement_">UndefinedElement_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsAssertionFailed">AsAssertionFailed</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:AssertionFailed_">AssertionFailed_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAssertionFailed">AsAssertionFailed</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsAsyncException">AsAsyncException</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:_StackOverflow">_StackOverflow</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_HeapOverflow">_HeapOverflow</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_ThreadKilled">_ThreadKilled</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><a href="#v:_UserInterrupt">_UserInterrupt</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t ()</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:AsyncException_">AsyncException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:StackOverflow_">StackOverflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:HeapOverflow_">HeapOverflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:ThreadKilled_">ThreadKilled_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:UserInterrupt_">UserInterrupt_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsNonTermination">AsNonTermination</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:NonTermination_">NonTermination_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNonTermination">AsNonTermination</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsNestedAtomically">AsNestedAtomically</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:NestedAtomically_">NestedAtomically_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNestedAtomically">AsNestedAtomically</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsBlockedIndefinitelyOnMVar">AsBlockedIndefinitelyOnMVar</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:BlockedIndefinitelyOnMVar_">BlockedIndefinitelyOnMVar_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnMVar">AsBlockedIndefinitelyOnMVar</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsBlockedIndefinitelyOnSTM">AsBlockedIndefinitelyOnSTM</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:BlockedIndefinitelyOnSTM_">BlockedIndefinitelyOnSTM_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnSTM">AsBlockedIndefinitelyOnSTM</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsDeadlock">AsDeadlock</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Deadlock_">Deadlock_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsDeadlock">AsDeadlock</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsNoMethodError">AsNoMethodError</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:NoMethodError_">NoMethodError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNoMethodError">AsNoMethodError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsPatternMatchFail">AsPatternMatchFail</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:PatternMatchFail_">PatternMatchFail_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsPatternMatchFail">AsPatternMatchFail</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsRecConError">AsRecConError</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:AsRecSelError">AsRecSelError</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:AsRecUpdError">AsRecUpdError</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:RecConError_">RecConError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecConError">AsRecConError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:RecSelError_">RecSelError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecSelError">AsRecSelError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:RecUpdError_">RecUpdError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecUpdError">AsRecUpdError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsErrorCall">AsErrorCall</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:ErrorCall_">ErrorCall_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsErrorCall">AsErrorCall</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsAllocationLimitExceeded">AsAllocationLimitExceeded</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:AllocationLimitExceeded_">AllocationLimitExceeded_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAllocationLimitExceeded">AsAllocationLimitExceeded</a> s => s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsTypeError">AsTypeError</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:TypeError_">TypeError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsTypeError">AsTypeError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s</li><li class="src short"><span class="keyword">class</span> <a href="#t:AsHandlingException">AsHandlingException</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:HandlingException_">HandlingException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsHandlingException">AsHandlingException</a> s => s</li></ul></div><div id="interface"><h1 id="g:1">Handling</h1><div class="top"><p class="src"><a id="v:catching" class="def">catching</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> (a -> m r) -> m r <a href="src/Control-Exception-Lens.html#catching" class="link">Source</a> <a href="#v:catching" class="selflink">#</a></p><div class="doc"><p>Catch exceptions that match a given <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> (or any <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>, really).</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>catching _AssertionFailed (assert False (return "uncaught")) $ \ _ -> return "caught"
</code></strong>"caught"
</pre><pre><code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
<code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
<code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
<code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
<code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
<code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> (a -> m r) -> m r
</pre></div></div><div class="top"><p class="src"><a id="v:catching_" class="def">catching_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m r -> m r <a href="src/Control-Exception-Lens.html#catching_" class="link">Source</a> <a href="#v:catching_" class="selflink">#</a></p><div class="doc"><p>Catch exceptions that match a given <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> (or any <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>), discarding
the information about the match. This is particuarly useful when you have
a <code><code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e ()</code> where the result of the <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> or <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> isn't
particularly valuable, just the fact that it matches.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>catching_ _AssertionFailed (assert False (return "uncaught")) $ return "caught"
</code></strong>"caught"
</pre><pre><code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
</pre></div></div><div class="top"><p class="src"><a id="v:handling" class="def">handling</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> (a -> m r) -> m r -> m r <a href="src/Control-Exception-Lens.html#handling" class="link">Source</a> <a href="#v:handling" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Control-Exception-Lens.html#v:catching">catching</a></code> with the arguments swapped around; useful in
situations where the code for the handler is shorter.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>handling _NonTermination (\_ -> return "caught") $ throwIO NonTermination
</code></strong>"caught"
</pre><pre><code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> m r -> m r
</pre></div></div><div class="top"><p class="src"><a id="v:handling_" class="def">handling_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m r -> m r <a href="src/Control-Exception-Lens.html#handling_" class="link">Source</a> <a href="#v:handling_" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Control-Exception-Lens.html#v:catching_">catching_</a></code> with the arguments swapped around; useful in
situations where the code for the handler is shorter.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>handling_ _NonTermination (return "caught") $ throwIO NonTermination
</code></strong>"caught"
</pre><pre><code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
<code><a href="Control-Exception-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m r -> m r
</pre></div></div><h1 id="g:2">Trying</h1><div class="top"><p class="src"><a id="v:trying" class="def">trying</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> a r) <a href="src/Control-Exception-Lens.html#trying" class="link">Source</a> <a href="#v:trying" class="selflink">#</a></p><div class="doc"><p>A variant of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#v:try">try</a></code> that takes a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> (or any <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>) to select which
exceptions are caught (c.f. <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#v:tryJust">tryJust</a></code>, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#v:catchJust">catchJust</a></code>). If the
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> does not match the predicate, it is re-thrown.</p><pre><code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
<code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
<code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
<code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
<code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
<code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></code> a r)
</pre></div></div><div class="top"><p class="src"><a id="v:trying_" class="def">trying_</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a> m => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> r) <a href="src/Control-Exception-Lens.html#trying_" class="link">Source</a> <a href="#v:trying_" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Control-Exception-Lens.html#v:trying">trying</a></code> that discards the specific exception thrown.</p><pre><code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
<code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
<code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
<code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
<code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
<code><a href="Control-Exception-Lens.html#v:trying_">trying_</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> m => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> m (Maybe r)
</pre></div></div><h1 id="g:3">Throwing</h1><div class="top"><p class="src"><a id="v:throwing" class="def">throwing</a> :: <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> r <a href="src/Control-Exception-Lens.html#throwing" class="link">Source</a> <a href="#v:throwing" class="selflink">#</a></p><div class="doc"><p>Throw an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> described by a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code>. Exceptions may be thrown from
purely functional code, but may only be caught within the <code>IO</code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> l ≡ <code><a href="Control-Lens-Review.html#v:reviews">reviews</a></code> l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#v:throw">throw</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> r
<code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> r
</pre></div></div><div class="top"><p class="src"><a id="v:throwing_" class="def">throwing_</a> :: <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () -> m x <a href="src/Control-Exception-Lens.html#throwing_" class="link">Source</a> <a href="#v:throwing_" class="selflink">#</a></p><div class="doc"><p>Similar to <code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> but specialised for the common case of
error constructors with no arguments.</p><pre>data MyError = Foo | Bar
makePrisms ''MyError
<code><a href="Control-Exception-Lens.html#v:throwing_">throwing_</a></code> _Foo :: <code>MonadError</code> MyError m => m a
</pre></div></div><div class="top"><p class="src"><a id="v:throwingM" class="def">throwingM</a> :: <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a> m => <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> m r <a href="src/Control-Exception-Lens.html#throwingM" class="link">Source</a> <a href="#v:throwingM" class="selflink">#</a></p><div class="doc"><p>A variant of <code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> that can only be used within the <code>IO</code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a></code>
(or any other <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> instance) to throw an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> described
by a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code>.</p><p>Although <code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> has a type that is a specialization of the type of
<code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code>, the two functions are subtly different:</p><pre><code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> l e `seq` x ≡ <code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> e
<code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> l e `seq` x ≡ x
</pre><p>The first example will cause the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> <code>e</code> to be raised, whereas the
second one won't. In fact, <code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> will only cause an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> to
be raised when it is used within the <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadCatch">MonadCatch</a></code> instance. The <code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code>
variant should be used in preference to <code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> to raise an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>
within the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a></code> because it guarantees ordering with respect to other
monadic operations, whereas <code><a href="Control-Exception-Lens.html#v:throwing">throwing</a></code> does not.</p><pre><code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> l ≡ <code><a href="Control-Lens-Review.html#v:reviews">reviews</a></code> l <code><a href="CatchIO.html#v:throw">throw</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a></code> m => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> m r
<code><a href="Control-Exception-Lens.html#v:throwingM">throwingM</a></code> :: <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:MonadThrow">MonadThrow</a></code> m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> m r
</pre></div></div><div class="top"><p class="src"><a id="v:throwingTo" class="def">throwingTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -> <a href="Control-Lens-Type.html#t:AReview">AReview</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> b -> b -> m () <a href="src/Control-Exception-Lens.html#throwingTo" class="link">Source</a> <a href="#v:throwingTo" class="selflink">#</a></p><div class="doc"><p><code><a href="Control-Exception-Lens.html#v:throwingTo">throwingTo</a></code> raises an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> specified by a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> in the target thread.</p><pre><code><a href="Control-Exception-Lens.html#v:throwingTo">throwingTo</a></code> thread l ≡ <code><a href="Control-Lens-Review.html#v:reviews">reviews</a></code> l (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#v:throwTo">throwTo</a></code> thread)
</pre><pre><code><a href="Control-Exception-Lens.html#v:throwingTo">throwingTo</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a></code> -> <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> m a
<code><a href="Control-Exception-Lens.html#v:throwingTo">throwingTo</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a></code> -> <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> t -> t -> m a
</pre></div></div><h1 id="g:4">Mapping</h1><div class="top"><p class="src"><a id="v:mappedException" class="def">mappedException</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e') => <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s e e' <a href="src/Control-Exception-Lens.html#mappedException" class="link">Source</a> <a href="#v:mappedException" class="selflink">#</a></p><div class="doc"><p>This <code><a href="Control-Lens-Type.html#t:Setter">Setter</a></code> can be used to purely map over the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>s an
arbitrary expression might throw; it is a variant of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#v:mapException">mapException</a></code> in
the same way that <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> is a variant of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#v:fmap">fmap</a></code>.</p><pre>'mapException' ≡ 'over' 'mappedException'</pre><p>This view that every Haskell expression can be regarded as carrying a bag
of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>s is detailed in “A Semantics for Imprecise Exceptions” by
Peyton Jones & al. at PLDI ’99.</p><p>The following maps failed assertions to arithmetic overflow:</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>handling _Overflow (\_ -> return "caught") $ assert False (return "uncaught") & mappedException %~ \ (AssertionFailed _) -> Overflow
</code></strong>"caught"
</pre></div></div><div class="top"><p class="src"><a id="v:mappedException-39-" class="def">mappedException'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> e' => <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> e' <a href="src/Control-Exception-Lens.html#mappedException%27" class="link">Source</a> <a href="#v:mappedException-39-" class="selflink">#</a></p><div class="doc"><p>This is a type restricted version of <code><a href="Control-Exception-Lens.html#v:mappedException">mappedException</a></code>, which avoids
the type ambiguity in the input <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> when using <code><a href="Control-Lens-Setter.html#v:set">set</a></code>.</p><p>The following maps any exception to arithmetic overflow:</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>handling _Overflow (\_ -> return "caught") $ assert False (return "uncaught") & mappedException' .~ Overflow
</code></strong>"caught"
</pre></div></div><h1 id="g:5">Exceptions</h1><div class="top"><p class="src"><a id="v:exception" class="def">exception</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> a => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a <a href="src/Control-Exception-Lens.html#exception" class="link">Source</a> <a href="#v:exception" class="selflink">#</a></p><div class="doc"><p>Traverse the strongly typed <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> contained in <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> where the type of your function matches
the desired <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:exception">exception</a></code> :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a></code> f, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> a)
=> (a -> f a) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> -> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Exception" class="def">Exception</a> :: <span class="keyword">forall</span> t. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a> t => t -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="src/Control-Exception-Lens.html#Exception" class="link">Source</a> <a href="#v:Exception" class="selflink">#</a></p></div><h1 id="g:6">Exception Handlers</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Handleable" class="def">Handleable</a> e m h | h -> e m <span class="keyword">where</span> <a href="src/Control-Lens-Internal-Exception.html#Handleable" class="link">Source</a> <a href="#t:Handleable" class="selflink">#</a></p><div class="doc"><p>Both <code>exceptions</code> and <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html">Control.Exception</a> provide a <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#v:Handler">Handler</a></code> type.</p><p>This lets us write combinators to build handlers that are agnostic about the choice of
which of these they use.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Exception-Lens.html#v:handler">handler</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:handler" class="def">handler</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) e a -> (a -> m r) -> h r <a href="src/Control-Lens-Internal-Exception.html#handler" class="link">Source</a> <a href="#v:handler" class="selflink">#</a></p><div class="doc"><p>This builds a <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#v:Handler">Handler</a></code> for just the targets of a given <code><a href="Control-Lens-Type.html#v:Prism">Prism</a></code> (or any <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>, really).</p><pre><code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#v:catches">catches</a></code> ... [ <code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> <code><a href="Control-Exception-Lens.html#v:_AssertionFailed">_AssertionFailed</a></code> (s -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#v:print">print</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:-36-">$</a></code> "Assertion Failed\n" <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-OldList.html#v:-43--43-">++</a></code> s)
, <code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> <code><a href="Control-Exception-Lens.html#v:_ErrorCall">_ErrorCall</a></code> (s -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#v:print">print</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:-36-">$</a></code> "Error\n" <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-OldList.html#v:-43--43-">++</a></code> s)
]
</pre><p>This works ith both the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> type provided by <code>Control.Exception</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r) -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
</pre><p>and with the <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> type provided by <code>Control.Monad.Catch</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> (a -> m r) -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
</pre><p>and with the <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> type provided by <code>Control.Monad.Error.Lens</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e a -> (a -> m r) -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e a -> (a -> m r) -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> e a -> (a -> m r) -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> e a -> (a -> m r) -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler">handler</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> e a -> (a -> m r) -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
</pre></div><p class="src"><a id="v:handler_" class="def">handler_</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) e a -> m r -> h r <a href="src/Control-Lens-Internal-Exception.html#handler_" class="link">Source</a> <a href="#v:handler_" class="selflink">#</a></p><div class="doc"><p>This builds a <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#v:Handler">Handler</a></code> for just the targets of a given <code><a href="Control-Lens-Prism.html#v:Prism">Prism</a></code> (or any <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>, really).
that ignores its input and just recovers with the stated monadic action.</p><pre><code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#v:catches">catches</a></code> ... [ <code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> <code><a href="Control-Exception-Lens.html#v:_NonTermination">_NonTermination</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:return">return</a></code> "looped")
, <code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> <code><a href="Control-Exception-Lens.html#v:_StackOverflow">_StackOverflow</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:return">return</a></code> "overflow")
]
</pre><p>This works with the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> type provided by <code>Control.Exception</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></code> r -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></code> r
</pre><p>and with the <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> type provided by <code>Control.Monad.Catch</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> a -> m r -> <code><a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a></code> m r
</pre><p>and with the <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> type provided by <code>Control.Monad.Error.Lens</code>:</p><pre><code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e a -> m r -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e a -> m r -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Prism.html#v:Prism-39-">Prism'</a></code> e a -> m r -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Lens.html#v:Lens-39-">Lens'</a></code> e a -> m r -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
<code><a href="Control-Exception-Lens.html#v:handler_">handler_</a></code> :: <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> e a -> m r -> <code><a href="Control-Monad-Error-Lens.html#v:Handler">Handler</a></code> e m r
</pre></div></div><div class="subs instances"><p id="control.i:Handleable" class="caption collapser" onclick="toggleSection('i:Handleable')">Instances</p><div id="section.i:Handleable" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Handleable:Handleable:1" class="instance expander" onclick="toggleSection('i:ic:Handleable:Handleable:1')"></span> <a href="Control-Exception-Lens.html#t:Handleable">Handleable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a></span> <a href="src/Control-Lens-Internal-Exception.html#line-140" class="link">Source</a> <a href="#t:Handleable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Handleable:Handleable:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:handler">handler</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> (a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> r) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a> r <a href="src/Control-Lens-Internal-Exception.html#handler" class="link">Source</a> <a href="#v:handler" class="selflink">#</a></p><p class="src"><a href="#v:handler_">handler_</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> r -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#t:Handler">Handler</a> r <a href="src/Control-Lens-Internal-Exception.html#handler_" class="link">Source</a> <a href="#v:handler_" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Handleable:Handleable:2" class="instance expander" onclick="toggleSection('i:ic:Handleable:Handleable:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a>) m => <a href="Control-Exception-Lens.html#t:Handleable">Handleable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> m (<a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a> m)</span> <a href="src/Control-Lens-Internal-Exception.html#line-143" class="link">Source</a> <a href="#t:Handleable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Handleable:Handleable:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:handler">handler</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> (a -> m r) -> <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a> m r <a href="src/Control-Lens-Internal-Exception.html#handler" class="link">Source</a> <a href="#v:handler" class="selflink">#</a></p><p class="src"><a href="#v:handler_">handler_</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a -> m r -> <a href="file:///usr/share/doc/libghc-exceptions-doc/html/Control-Monad-Catch.html#t:Handler">Handler</a> m r <a href="src/Control-Lens-Internal-Exception.html#handler_" class="link">Source</a> <a href="#v:handler_" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Handleable:Handleable:3" class="instance expander" onclick="toggleSection('i:ic:Handleable:Handleable:3')"></span> <a href="Control-Exception-Lens.html#t:Handleable">Handleable</a> e m (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m)</span> <a href="src/Control-Lens-Internal-Exception.html#line-201" class="link">Source</a> <a href="#t:Handleable" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Handleable:Handleable:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:handler">handler</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) e a -> (a -> m r) -> <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m r <a href="src/Control-Lens-Internal-Exception.html#handler" class="link">Source</a> <a href="#v:handler" class="selflink">#</a></p><p class="src"><a href="#v:handler_">handler_</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:First">First</a> a) e a -> m r -> <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m r <a href="src/Control-Lens-Internal-Exception.html#handler_" class="link">Source</a> <a href="#v:handler_" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h2 id="g:7">IOExceptions</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsIOException" class="def">AsIOException</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsIOException" class="link">Source</a> <a href="#t:AsIOException" class="selflink">#</a></p><div class="doc"><p>Exceptions that occur in the <code>IO</code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a></code>. An <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code> records a
more specific error type, a descriptive string and maybe the handle that was
used when the error was flagged.</p><p>Due to their richer structure relative to other exceptions, these have
a more carefully overloaded signature.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_IOException" class="def">_IOException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> <a href="src/Control-Exception-Lens.html#_IOException" class="link">Source</a> <a href="#v:_IOException" class="selflink">#</a></p><div class="doc"><p>Unfortunately the name <code>ioException</code> is taken by <code>base</code> for
throwing IOExceptions.</p><pre><code><a href="Control-Exception-Lens.html#v:_IOException">_IOException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code>
<code><a href="Control-Exception-Lens.html#v:_IOException">_IOException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code>
</pre><p>Many combinators for working with an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></code> are available
in <a href="System-IO-Error-Lens.html">System.IO.Error.Lens</a>.</p></div></div><div class="subs instances"><p id="control.i:AsIOException" class="caption collapser" onclick="toggleSection('i:AsIOException')">Instances</p><div id="section.i:AsIOException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsIOException:AsIOException:1" class="instance expander" onclick="toggleSection('i:ic:AsIOException:AsIOException:1')"></span> <a href="Control-Exception-Lens.html#t:AsIOException">AsIOException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a></span> <a href="src/Control-Exception-Lens.html#line-480" class="link">Source</a> <a href="#t:AsIOException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsIOException:AsIOException:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_IOException">_IOException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> <a href="src/Control-Exception-Lens.html#_IOException" class="link">Source</a> <a href="#v:_IOException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsIOException:AsIOException:2" class="instance expander" onclick="toggleSection('i:ic:AsIOException:AsIOException:2')"></span> <a href="Control-Exception-Lens.html#t:AsIOException">AsIOException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-484" class="link">Source</a> <a href="#t:AsIOException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsIOException:AsIOException:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_IOException">_IOException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> <a href="src/Control-Exception-Lens.html#_IOException" class="link">Source</a> <a href="#v:_IOException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:IOException_" class="def">IOException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsIOException">AsIOException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> -> s <a href="src/Control-Exception-Lens.html#IOException_" class="link">Source</a> <a href="#v:IOException_" class="selflink">#</a></p></div><h2 id="g:8">Arithmetic Exceptions</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsArithException" class="def">AsArithException</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsArithException" class="link">Source</a> <a href="#t:AsArithException" class="selflink">#</a></p><div class="doc"><p>Arithmetic exceptions.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_ArithException" class="def">_ArithException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> <a href="src/Control-Exception-Lens.html#_ArithException" class="link">Source</a> <a href="#v:_ArithException" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:AsArithException" class="caption collapser" onclick="toggleSection('i:AsArithException')">Instances</p><div id="section.i:AsArithException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsArithException:AsArithException:1" class="instance expander" onclick="toggleSection('i:ic:AsArithException:AsArithException:1')"></span> <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></span> <a href="src/Control-Exception-Lens.html#line-508" class="link">Source</a> <a href="#t:AsArithException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsArithException:AsArithException:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ArithException">_ArithException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> <a href="src/Control-Exception-Lens.html#_ArithException" class="link">Source</a> <a href="#v:_ArithException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsArithException:AsArithException:2" class="instance expander" onclick="toggleSection('i:ic:AsArithException:AsArithException:2')"></span> <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-512" class="link">Source</a> <a href="#t:AsArithException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsArithException:AsArithException:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ArithException">_ArithException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> <a href="src/Control-Exception-Lens.html#_ArithException" class="link">Source</a> <a href="#v:_ArithException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:_Overflow" class="def">_Overflow</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_Overflow" class="link">Source</a> <a href="#v:_Overflow" class="selflink">#</a></p><div class="doc"><p>Handle arithmetic <code><a href="Control-Exception-Lens.html#v:_Overflow">_Overflow</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_Overflow">_Overflow</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_Overflow">_Overflow</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_Overflow">_Overflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_Overflow">_Overflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_Underflow" class="def">_Underflow</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_Underflow" class="link">Source</a> <a href="#v:_Underflow" class="selflink">#</a></p><div class="doc"><p>Handle arithmetic <code><a href="Control-Exception-Lens.html#v:_Underflow">_Underflow</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_Underflow">_Underflow</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_Underflow">_Underflow</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_Underflow">_Underflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_Underflow">_Underflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_LossOfPrecision" class="def">_LossOfPrecision</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_LossOfPrecision" class="link">Source</a> <a href="#v:_LossOfPrecision" class="selflink">#</a></p><div class="doc"><p>Handle arithmetic loss of precision.</p><pre><code><a href="Control-Exception-Lens.html#v:_LossOfPrecision">_LossOfPrecision</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_LossOfPrecision">_LossOfPrecision</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_LossOfPrecision">_LossOfPrecision</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_LossOfPrecision">_LossOfPrecision</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_DivideByZero" class="def">_DivideByZero</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_DivideByZero" class="link">Source</a> <a href="#v:_DivideByZero" class="selflink">#</a></p><div class="doc"><p>Handle division by zero.</p><pre><code><a href="Control-Exception-Lens.html#v:_DivideByZero">_DivideByZero</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_DivideByZero">_DivideByZero</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_DivideByZero">_DivideByZero</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_DivideByZero">_DivideByZero</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_Denormal" class="def">_Denormal</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_Denormal" class="link">Source</a> <a href="#v:_Denormal" class="selflink">#</a></p><div class="doc"><p>Handle exceptional _Denormalized floating pure.</p><pre><code><a href="Control-Exception-Lens.html#v:_Denormal">_Denormal</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_Denormal">_Denormal</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_Denormal">_Denormal</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_Denormal">_Denormal</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_RatioZeroDenominator" class="def">_RatioZeroDenominator</a> :: <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_RatioZeroDenominator" class="link">Source</a> <a href="#v:_RatioZeroDenominator" class="selflink">#</a></p><div class="doc"><p>Added in <code>base</code> 4.6 in response to this libraries discussion:</p><p><a href="http://haskell.1045720.n5.nabble.com/Data-Ratio-and-exceptions-td5711246.html">http://haskell.1045720.n5.nabble.com/Data-Ratio-and-exceptions-td5711246.html</a></p><pre><code><a href="Control-Exception-Lens.html#v:_RatioZeroDenominator">_RatioZeroDenominator</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArithException">_ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_RatioZeroDenominator">_RatioZeroDenominator</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_RatioZeroDenominator">_RatioZeroDenominator</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
<code><a href="Control-Exception-Lens.html#v:_RatioZeroDenominator">_RatioZeroDenominator</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:ArithException_" class="def">ArithException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -> s <a href="src/Control-Exception-Lens.html#ArithException_" class="link">Source</a> <a href="#v:ArithException_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Overflow_" class="def">Overflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#Overflow_" class="link">Source</a> <a href="#v:Overflow_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Underflow_" class="def">Underflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#Underflow_" class="link">Source</a> <a href="#v:Underflow_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:LossOfPrecision_" class="def">LossOfPrecision_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#LossOfPrecision_" class="link">Source</a> <a href="#v:LossOfPrecision_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:DivideByZero_" class="def">DivideByZero_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#DivideByZero_" class="link">Source</a> <a href="#v:DivideByZero_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Denormal_" class="def">Denormal_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#Denormal_" class="link">Source</a> <a href="#v:Denormal_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:RatioZeroDenominator_" class="def">RatioZeroDenominator_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArithException">AsArithException</a> s => s <a href="src/Control-Exception-Lens.html#RatioZeroDenominator_" class="link">Source</a> <a href="#v:RatioZeroDenominator_" class="selflink">#</a></p></div><h2 id="g:9">Array Exceptions</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsArrayException" class="def">AsArrayException</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsArrayException" class="link">Source</a> <a href="#t:AsArrayException" class="selflink">#</a></p><div class="doc"><p>Exceptions generated by array operations.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_ArrayException" class="def">_ArrayException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> <a href="src/Control-Exception-Lens.html#_ArrayException" class="link">Source</a> <a href="#v:_ArrayException" class="selflink">#</a></p><div class="doc"><p>Extract information about an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_ArrayException">_ArrayException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code>
<code><a href="Control-Exception-Lens.html#v:_ArrayException">_ArrayException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsArrayException" class="caption collapser" onclick="toggleSection('i:AsArrayException')">Instances</p><div id="section.i:AsArrayException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsArrayException:AsArrayException:1" class="instance expander" onclick="toggleSection('i:ic:AsArrayException:AsArrayException:1')"></span> <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></span> <a href="src/Control-Exception-Lens.html#line-661" class="link">Source</a> <a href="#t:AsArrayException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsArrayException:AsArrayException:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ArrayException">_ArrayException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> <a href="src/Control-Exception-Lens.html#_ArrayException" class="link">Source</a> <a href="#v:_ArrayException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsArrayException:AsArrayException:2" class="instance expander" onclick="toggleSection('i:ic:AsArrayException:AsArrayException:2')"></span> <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-665" class="link">Source</a> <a href="#t:AsArrayException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsArrayException:AsArrayException:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ArrayException">_ArrayException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> <a href="src/Control-Exception-Lens.html#_ArrayException" class="link">Source</a> <a href="#v:_ArrayException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:_IndexOutOfBounds" class="def">_IndexOutOfBounds</a> :: <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_IndexOutOfBounds" class="link">Source</a> <a href="#v:_IndexOutOfBounds" class="selflink">#</a></p><div class="doc"><p>An attempt was made to index an array outside its declared bounds.</p><pre><code><a href="Control-Exception-Lens.html#v:_IndexOutOfBounds">_IndexOutOfBounds</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArrayException">_ArrayException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_IndexOutOfBounds">_IndexOutOfBounds</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_IndexOutOfBounds">_IndexOutOfBounds</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_IndexOutOfBounds">_IndexOutOfBounds</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="top"><p class="src"><a id="v:_UndefinedElement" class="def">_UndefinedElement</a> :: <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_UndefinedElement" class="link">Source</a> <a href="#v:_UndefinedElement" class="selflink">#</a></p><div class="doc"><p>An attempt was made to evaluate an element of an array that had not been initialized.</p><pre><code><a href="Control-Exception-Lens.html#v:_UndefinedElement">_UndefinedElement</a></code> ≡ <code><a href="Control-Exception-Lens.html#v:_ArrayException">_ArrayException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Exception-Lens.html#v:_UndefinedElement">_UndefinedElement</a></code>
</pre><pre><code><a href="Control-Exception-Lens.html#v:_UndefinedElement">_UndefinedElement</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_UndefinedElement">_UndefinedElement</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:ArrayException_" class="def">ArrayException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -> s <a href="src/Control-Exception-Lens.html#ArrayException_" class="link">Source</a> <a href="#v:ArrayException_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:IndexOutOfBounds_" class="def">IndexOutOfBounds_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#IndexOutOfBounds_" class="link">Source</a> <a href="#v:IndexOutOfBounds_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:UndefinedElement_" class="def">UndefinedElement_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsArrayException">AsArrayException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#UndefinedElement_" class="link">Source</a> <a href="#v:UndefinedElement_" class="selflink">#</a></p></div><h2 id="g:10">Assertion Failed</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsAssertionFailed" class="def">AsAssertionFailed</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsAssertionFailed" class="link">Source</a> <a href="#t:AsAssertionFailed" class="selflink">#</a></p><div class="doc"><p><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#v:assert">assert</a></code> was applied to <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#v:False">False</a></code>.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_AssertionFailed" class="def">_AssertionFailed</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_AssertionFailed" class="link">Source</a> <a href="#v:_AssertionFailed" class="selflink">#</a></p><div class="doc"><p>This <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> contains provides information about what assertion failed in the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>handling _AssertionFailed (\ xs -> "caught" <$ guard ("<interactive>" `isInfixOf` xs) ) $ assert False (return "uncaught")
</code></strong>"caught"
</pre><pre><code><a href="Control-Exception-Lens.html#v:_AssertionFailed">_AssertionFailed</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_AssertionFailed">_AssertionFailed</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsAssertionFailed" class="caption collapser" onclick="toggleSection('i:AsAssertionFailed')">Instances</p><div id="section.i:AsAssertionFailed" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAssertionFailed:AsAssertionFailed:1" class="instance expander" onclick="toggleSection('i:ic:AsAssertionFailed:AsAssertionFailed:1')"></span> <a href="Control-Exception-Lens.html#t:AsAssertionFailed">AsAssertionFailed</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a></span> <a href="src/Control-Exception-Lens.html#line-733" class="link">Source</a> <a href="#t:AsAssertionFailed" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAssertionFailed:AsAssertionFailed:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AssertionFailed">_AssertionFailed</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AssertionFailed">AssertionFailed</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_AssertionFailed" class="link">Source</a> <a href="#v:_AssertionFailed" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAssertionFailed:AsAssertionFailed:2" class="instance expander" onclick="toggleSection('i:ic:AsAssertionFailed:AsAssertionFailed:2')"></span> <a href="Control-Exception-Lens.html#t:AsAssertionFailed">AsAssertionFailed</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-737" class="link">Source</a> <a href="#t:AsAssertionFailed" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAssertionFailed:AsAssertionFailed:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AssertionFailed">_AssertionFailed</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_AssertionFailed" class="link">Source</a> <a href="#v:_AssertionFailed" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:AssertionFailed_" class="def">AssertionFailed_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAssertionFailed">AsAssertionFailed</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#AssertionFailed_" class="link">Source</a> <a href="#v:AssertionFailed_" class="selflink">#</a></p></div><h2 id="g:11">Async Exceptions</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsAsyncException" class="def">AsAsyncException</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsAsyncException" class="link">Source</a> <a href="#t:AsAsyncException" class="selflink">#</a></p><div class="doc"><p>Asynchronous exceptions.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_AsyncException" class="def">_AsyncException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> <a href="src/Control-Exception-Lens.html#_AsyncException" class="link">Source</a> <a href="#v:_AsyncException" class="selflink">#</a></p><div class="doc"><p>There are several types of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_AsyncException">_AsyncException</a></code> :: <code><a href="Control-Lens-Type.html#t:Equality-39-">Equality'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code>
<code><a href="Control-Exception-Lens.html#v:_AsyncException">_AsyncException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsAsyncException" class="caption collapser" onclick="toggleSection('i:AsAsyncException')">Instances</p><div id="section.i:AsAsyncException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAsyncException:AsAsyncException:1" class="instance expander" onclick="toggleSection('i:ic:AsAsyncException:AsAsyncException:1')"></span> <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></span> <a href="src/Control-Exception-Lens.html#line-760" class="link">Source</a> <a href="#t:AsAsyncException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAsyncException:AsAsyncException:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AsyncException">_AsyncException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> <a href="src/Control-Exception-Lens.html#_AsyncException" class="link">Source</a> <a href="#v:_AsyncException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAsyncException:AsAsyncException:2" class="instance expander" onclick="toggleSection('i:ic:AsAsyncException:AsAsyncException:2')"></span> <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-764" class="link">Source</a> <a href="#t:AsAsyncException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAsyncException:AsAsyncException:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AsyncException">_AsyncException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> <a href="src/Control-Exception-Lens.html#_AsyncException" class="link">Source</a> <a href="#v:_AsyncException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:_StackOverflow" class="def">_StackOverflow</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_StackOverflow" class="link">Source</a> <a href="#v:_StackOverflow" class="selflink">#</a></p><div class="doc"><p>The current thread's stack exceeded its limit. Since an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> has
been raised, the thread's stack will certainly be below its limit again,
but the programmer should take remedial action immediately.</p><pre><code><a href="Control-Exception-Lens.html#v:_StackOverflow">_StackOverflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_StackOverflow">_StackOverflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="top"><p class="src"><a id="v:_HeapOverflow" class="def">_HeapOverflow</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_HeapOverflow" class="link">Source</a> <a href="#v:_HeapOverflow" class="selflink">#</a></p><div class="doc"><p>The program's heap is reaching its limit, and the program should take action
to reduce the amount of live data it has.</p><p>Notes:</p><ul><li>It is undefined which thread receives this <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</li><li>GHC currently does not throw <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#v:HeapOverflow">HeapOverflow</a></code> exceptions.</li></ul><pre><code><a href="Control-Exception-Lens.html#v:_HeapOverflow">_HeapOverflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_HeapOverflow">_HeapOverflow</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="top"><p class="src"><a id="v:_ThreadKilled" class="def">_ThreadKilled</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_ThreadKilled" class="link">Source</a> <a href="#v:_ThreadKilled" class="selflink">#</a></p><div class="doc"><p>This <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> is raised by another thread calling
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#v:killThread">killThread</a></code>, or by the system if it needs to terminate
the thread for some reason.</p><pre><code><a href="Control-Exception-Lens.html#v:_ThreadKilled">_ThreadKilled</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_ThreadKilled">_ThreadKilled</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="top"><p class="src"><a id="v:_UserInterrupt" class="def">_UserInterrupt</a> :: <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> t => <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_UserInterrupt" class="link">Source</a> <a href="#v:_UserInterrupt" class="selflink">#</a></p><div class="doc"><p>This <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> is raised by default in the main thread of the program when
the user requests to terminate the program via the usual mechanism(s)
(<em>e.g.</em> Control-C in the console).</p><pre><code><a href="Control-Exception-Lens.html#v:_UserInterrupt">_UserInterrupt</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_UserInterrupt">_UserInterrupt</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:AsyncException_" class="def">AsyncException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -> s <a href="src/Control-Exception-Lens.html#AsyncException_" class="link">Source</a> <a href="#v:AsyncException_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:StackOverflow_" class="def">StackOverflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s <a href="src/Control-Exception-Lens.html#StackOverflow_" class="link">Source</a> <a href="#v:StackOverflow_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:HeapOverflow_" class="def">HeapOverflow_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s <a href="src/Control-Exception-Lens.html#HeapOverflow_" class="link">Source</a> <a href="#v:HeapOverflow_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:ThreadKilled_" class="def">ThreadKilled_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s <a href="src/Control-Exception-Lens.html#ThreadKilled_" class="link">Source</a> <a href="#v:ThreadKilled_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:UserInterrupt_" class="def">UserInterrupt_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAsyncException">AsAsyncException</a> s => s <a href="src/Control-Exception-Lens.html#UserInterrupt_" class="link">Source</a> <a href="#v:UserInterrupt_" class="selflink">#</a></p></div><h2 id="g:12">Non-Termination</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsNonTermination" class="def">AsNonTermination</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsNonTermination" class="link">Source</a> <a href="#t:AsNonTermination" class="selflink">#</a></p><div class="doc"><p>Thrown when the runtime system detects that the computation is guaranteed
not to terminate. Note that there is no guarantee that the runtime system
will notice whether any given computation is guaranteed to terminate or not.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_NonTermination" class="def">_NonTermination</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_NonTermination" class="link">Source</a> <a href="#v:_NonTermination" class="selflink">#</a></p><div class="doc"><p>There is no additional information carried in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_NonTermination">_NonTermination</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_NonTermination">_NonTermination</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsNonTermination" class="caption collapser" onclick="toggleSection('i:AsNonTermination')">Instances</p><div id="section.i:AsNonTermination" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNonTermination:AsNonTermination:1" class="instance expander" onclick="toggleSection('i:ic:AsNonTermination:AsNonTermination:1')"></span> <a href="Control-Exception-Lens.html#t:AsNonTermination">AsNonTermination</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a></span> <a href="src/Control-Exception-Lens.html#line-870" class="link">Source</a> <a href="#t:AsNonTermination" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNonTermination:AsNonTermination:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NonTermination">_NonTermination</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NonTermination">NonTermination</a> () <a href="src/Control-Exception-Lens.html#_NonTermination" class="link">Source</a> <a href="#v:_NonTermination" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNonTermination:AsNonTermination:2" class="instance expander" onclick="toggleSection('i:ic:AsNonTermination:AsNonTermination:2')"></span> <a href="Control-Exception-Lens.html#t:AsNonTermination">AsNonTermination</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-874" class="link">Source</a> <a href="#t:AsNonTermination" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNonTermination:AsNonTermination:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NonTermination">_NonTermination</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_NonTermination" class="link">Source</a> <a href="#v:_NonTermination" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:NonTermination_" class="def">NonTermination_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNonTermination">AsNonTermination</a> s => s <a href="src/Control-Exception-Lens.html#NonTermination_" class="link">Source</a> <a href="#v:NonTermination_" class="selflink">#</a></p></div><h2 id="g:13">Nested Atomically</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsNestedAtomically" class="def">AsNestedAtomically</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsNestedAtomically" class="link">Source</a> <a href="#t:AsNestedAtomically" class="selflink">#</a></p><div class="doc"><p>Thrown when the program attempts to call atomically, from the
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:STM">STM</a></code> package, inside another call to atomically.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_NestedAtomically" class="def">_NestedAtomically</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_NestedAtomically" class="link">Source</a> <a href="#v:_NestedAtomically" class="selflink">#</a></p><div class="doc"><p>There is no additional information carried in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_NestedAtomically">_NestedAtomically</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_NestedAtomically">_NestedAtomically</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsNestedAtomically" class="caption collapser" onclick="toggleSection('i:AsNestedAtomically')">Instances</p><div id="section.i:AsNestedAtomically" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNestedAtomically:AsNestedAtomically:1" class="instance expander" onclick="toggleSection('i:ic:AsNestedAtomically:AsNestedAtomically:1')"></span> <a href="Control-Exception-Lens.html#t:AsNestedAtomically">AsNestedAtomically</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a></span> <a href="src/Control-Exception-Lens.html#line-898" class="link">Source</a> <a href="#t:AsNestedAtomically" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNestedAtomically:AsNestedAtomically:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NestedAtomically">_NestedAtomically</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NestedAtomically">NestedAtomically</a> () <a href="src/Control-Exception-Lens.html#_NestedAtomically" class="link">Source</a> <a href="#v:_NestedAtomically" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNestedAtomically:AsNestedAtomically:2" class="instance expander" onclick="toggleSection('i:ic:AsNestedAtomically:AsNestedAtomically:2')"></span> <a href="Control-Exception-Lens.html#t:AsNestedAtomically">AsNestedAtomically</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-902" class="link">Source</a> <a href="#t:AsNestedAtomically" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNestedAtomically:AsNestedAtomically:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NestedAtomically">_NestedAtomically</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_NestedAtomically" class="link">Source</a> <a href="#v:_NestedAtomically" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:NestedAtomically_" class="def">NestedAtomically_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNestedAtomically">AsNestedAtomically</a> s => s <a href="src/Control-Exception-Lens.html#NestedAtomically_" class="link">Source</a> <a href="#v:NestedAtomically_" class="selflink">#</a></p></div><h2 id="g:14">Blocked Indefinitely</h2><h3 id="g:15">on MVar</h3><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsBlockedIndefinitelyOnMVar" class="def">AsBlockedIndefinitelyOnMVar</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsBlockedIndefinitelyOnMVar" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnMVar" class="selflink">#</a></p><div class="doc"><p>The thread is blocked on an <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent-MVar.html#v:MVar">MVar</a></code>, but there
are no other references to the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent-MVar.html#v:MVar">MVar</a></code> so it can't
ever continue.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_BlockedIndefinitelyOnMVar" class="def">_BlockedIndefinitelyOnMVar</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnMVar" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnMVar" class="selflink">#</a></p><div class="doc"><p>There is no additional information carried in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_BlockedIndefinitelyOnMVar">_BlockedIndefinitelyOnMVar</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_BlockedIndefinitelyOnMVar">_BlockedIndefinitelyOnMVar</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsBlockedIndefinitelyOnMVar" class="caption collapser" onclick="toggleSection('i:AsBlockedIndefinitelyOnMVar')">Instances</p><div id="section.i:AsBlockedIndefinitelyOnMVar" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:1" class="instance expander" onclick="toggleSection('i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:1')"></span> <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnMVar">AsBlockedIndefinitelyOnMVar</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a></span> <a href="src/Control-Exception-Lens.html#line-927" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnMVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_BlockedIndefinitelyOnMVar">_BlockedIndefinitelyOnMVar</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnMVar">BlockedIndefinitelyOnMVar</a> () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnMVar" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnMVar" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:2" class="instance expander" onclick="toggleSection('i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:2')"></span> <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnMVar">AsBlockedIndefinitelyOnMVar</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-931" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnMVar" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsBlockedIndefinitelyOnMVar:AsBlockedIndefinitelyOnMVar:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_BlockedIndefinitelyOnMVar">_BlockedIndefinitelyOnMVar</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnMVar" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnMVar" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:BlockedIndefinitelyOnMVar_" class="def">BlockedIndefinitelyOnMVar_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnMVar">AsBlockedIndefinitelyOnMVar</a> s => s <a href="src/Control-Exception-Lens.html#BlockedIndefinitelyOnMVar_" class="link">Source</a> <a href="#v:BlockedIndefinitelyOnMVar_" class="selflink">#</a></p></div><h3 id="g:16">on STM</h3><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsBlockedIndefinitelyOnSTM" class="def">AsBlockedIndefinitelyOnSTM</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsBlockedIndefinitelyOnSTM" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnSTM" class="selflink">#</a></p><div class="doc"><p>The thread is waiting to retry an <code><a href="Control-Monad-STM.html#v:STM">STM</a></code> transaction,
but there are no other references to any TVars involved, so it can't ever
continue.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_BlockedIndefinitelyOnSTM" class="def">_BlockedIndefinitelyOnSTM</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnSTM" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnSTM" class="selflink">#</a></p><div class="doc"><p>There is no additional information carried in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_BlockedIndefinitelyOnSTM">_BlockedIndefinitelyOnSTM</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_BlockedIndefinitelyOnSTM">_BlockedIndefinitelyOnSTM</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsBlockedIndefinitelyOnSTM" class="caption collapser" onclick="toggleSection('i:AsBlockedIndefinitelyOnSTM')">Instances</p><div id="section.i:AsBlockedIndefinitelyOnSTM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:1" class="instance expander" onclick="toggleSection('i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:1')"></span> <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnSTM">AsBlockedIndefinitelyOnSTM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a></span> <a href="src/Control-Exception-Lens.html#line-956" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnSTM" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_BlockedIndefinitelyOnSTM">_BlockedIndefinitelyOnSTM</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:BlockedIndefinitelyOnSTM">BlockedIndefinitelyOnSTM</a> () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnSTM" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnSTM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:2" class="instance expander" onclick="toggleSection('i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:2')"></span> <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnSTM">AsBlockedIndefinitelyOnSTM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-960" class="link">Source</a> <a href="#t:AsBlockedIndefinitelyOnSTM" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsBlockedIndefinitelyOnSTM:AsBlockedIndefinitelyOnSTM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_BlockedIndefinitelyOnSTM">_BlockedIndefinitelyOnSTM</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_BlockedIndefinitelyOnSTM" class="link">Source</a> <a href="#v:_BlockedIndefinitelyOnSTM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:BlockedIndefinitelyOnSTM_" class="def">BlockedIndefinitelyOnSTM_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsBlockedIndefinitelyOnSTM">AsBlockedIndefinitelyOnSTM</a> s => s <a href="src/Control-Exception-Lens.html#BlockedIndefinitelyOnSTM_" class="link">Source</a> <a href="#v:BlockedIndefinitelyOnSTM_" class="selflink">#</a></p></div><h2 id="g:17">Deadlock</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsDeadlock" class="def">AsDeadlock</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsDeadlock" class="link">Source</a> <a href="#t:AsDeadlock" class="selflink">#</a></p><div class="doc"><p>There are no runnable threads, so the program is deadlocked. The
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> is raised in the main thread only.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_Deadlock" class="def">_Deadlock</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_Deadlock" class="link">Source</a> <a href="#v:_Deadlock" class="selflink">#</a></p><div class="doc"><p>There is no information carried in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_Deadlock">_Deadlock</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_Deadlock">_Deadlock</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsDeadlock" class="caption collapser" onclick="toggleSection('i:AsDeadlock')">Instances</p><div id="section.i:AsDeadlock" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsDeadlock:AsDeadlock:1" class="instance expander" onclick="toggleSection('i:ic:AsDeadlock:AsDeadlock:1')"></span> <a href="Control-Exception-Lens.html#t:AsDeadlock">AsDeadlock</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a></span> <a href="src/Control-Exception-Lens.html#line-984" class="link">Source</a> <a href="#t:AsDeadlock" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsDeadlock:AsDeadlock:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_Deadlock">_Deadlock</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Deadlock">Deadlock</a> () <a href="src/Control-Exception-Lens.html#_Deadlock" class="link">Source</a> <a href="#v:_Deadlock" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsDeadlock:AsDeadlock:2" class="instance expander" onclick="toggleSection('i:ic:AsDeadlock:AsDeadlock:2')"></span> <a href="Control-Exception-Lens.html#t:AsDeadlock">AsDeadlock</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-988" class="link">Source</a> <a href="#t:AsDeadlock" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsDeadlock:AsDeadlock:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_Deadlock">_Deadlock</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_Deadlock" class="link">Source</a> <a href="#v:_Deadlock" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Deadlock_" class="def">Deadlock_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsDeadlock">AsDeadlock</a> s => s <a href="src/Control-Exception-Lens.html#Deadlock_" class="link">Source</a> <a href="#v:Deadlock_" class="selflink">#</a></p></div><h2 id="g:18">No Such Method</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsNoMethodError" class="def">AsNoMethodError</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsNoMethodError" class="link">Source</a> <a href="#t:AsNoMethodError" class="selflink">#</a></p><div class="doc"><p>A class method without a definition (neither a default definition,
nor a definition in the appropriate instance) was called.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_NoMethodError" class="def">_NoMethodError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_NoMethodError" class="link">Source</a> <a href="#v:_NoMethodError" class="selflink">#</a></p><div class="doc"><p>Extract a description of the missing method.</p><pre><code><a href="Control-Exception-Lens.html#v:_NoMethodError">_NoMethodError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_NoMethodError">_NoMethodError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsNoMethodError" class="caption collapser" onclick="toggleSection('i:AsNoMethodError')">Instances</p><div id="section.i:AsNoMethodError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNoMethodError:AsNoMethodError:1" class="instance expander" onclick="toggleSection('i:ic:AsNoMethodError:AsNoMethodError:1')"></span> <a href="Control-Exception-Lens.html#t:AsNoMethodError">AsNoMethodError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a></span> <a href="src/Control-Exception-Lens.html#line-1012" class="link">Source</a> <a href="#t:AsNoMethodError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNoMethodError:AsNoMethodError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NoMethodError">_NoMethodError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:NoMethodError">NoMethodError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_NoMethodError" class="link">Source</a> <a href="#v:_NoMethodError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsNoMethodError:AsNoMethodError:2" class="instance expander" onclick="toggleSection('i:ic:AsNoMethodError:AsNoMethodError:2')"></span> <a href="Control-Exception-Lens.html#t:AsNoMethodError">AsNoMethodError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1016" class="link">Source</a> <a href="#t:AsNoMethodError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsNoMethodError:AsNoMethodError:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_NoMethodError">_NoMethodError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_NoMethodError" class="link">Source</a> <a href="#v:_NoMethodError" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:NoMethodError_" class="def">NoMethodError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsNoMethodError">AsNoMethodError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#NoMethodError_" class="link">Source</a> <a href="#v:NoMethodError_" class="selflink">#</a></p></div><h2 id="g:19">Pattern Match Failure</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsPatternMatchFail" class="def">AsPatternMatchFail</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsPatternMatchFail" class="link">Source</a> <a href="#t:AsPatternMatchFail" class="selflink">#</a></p><div class="doc"><p>A pattern match failed.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_PatternMatchFail" class="def">_PatternMatchFail</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_PatternMatchFail" class="link">Source</a> <a href="#v:_PatternMatchFail" class="selflink">#</a></p><div class="doc"><p>Information about the source location of the pattern.</p><pre><code><a href="Control-Exception-Lens.html#v:_PatternMatchFail">_PatternMatchFail</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_PatternMatchFail">_PatternMatchFail</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsPatternMatchFail" class="caption collapser" onclick="toggleSection('i:AsPatternMatchFail')">Instances</p><div id="section.i:AsPatternMatchFail" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsPatternMatchFail:AsPatternMatchFail:1" class="instance expander" onclick="toggleSection('i:ic:AsPatternMatchFail:AsPatternMatchFail:1')"></span> <a href="Control-Exception-Lens.html#t:AsPatternMatchFail">AsPatternMatchFail</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a></span> <a href="src/Control-Exception-Lens.html#line-1039" class="link">Source</a> <a href="#t:AsPatternMatchFail" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsPatternMatchFail:AsPatternMatchFail:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_PatternMatchFail">_PatternMatchFail</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:PatternMatchFail">PatternMatchFail</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_PatternMatchFail" class="link">Source</a> <a href="#v:_PatternMatchFail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsPatternMatchFail:AsPatternMatchFail:2" class="instance expander" onclick="toggleSection('i:ic:AsPatternMatchFail:AsPatternMatchFail:2')"></span> <a href="Control-Exception-Lens.html#t:AsPatternMatchFail">AsPatternMatchFail</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1043" class="link">Source</a> <a href="#t:AsPatternMatchFail" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsPatternMatchFail:AsPatternMatchFail:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_PatternMatchFail">_PatternMatchFail</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_PatternMatchFail" class="link">Source</a> <a href="#v:_PatternMatchFail" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:PatternMatchFail_" class="def">PatternMatchFail_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsPatternMatchFail">AsPatternMatchFail</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#PatternMatchFail_" class="link">Source</a> <a href="#v:PatternMatchFail_" class="selflink">#</a></p></div><h2 id="g:20">Record</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsRecConError" class="def">AsRecConError</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsRecConError" class="link">Source</a> <a href="#t:AsRecConError" class="selflink">#</a></p><div class="doc"><p>An uninitialised record field was used.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_RecConError" class="def">_RecConError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecConError" class="link">Source</a> <a href="#v:_RecConError" class="selflink">#</a></p><div class="doc"><p>Information about the source location where the record was
constructed.</p><pre><code><a href="Control-Exception-Lens.html#v:_RecConError">_RecConError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecConError">RecConError</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
<code><a href="Control-Exception-Lens.html#v:_RecConError">_RecConError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>
</pre></div></div><div class="subs instances"><p id="control.i:AsRecConError" class="caption collapser" onclick="toggleSection('i:AsRecConError')">Instances</p><div id="section.i:AsRecConError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecConError:AsRecConError:1" class="instance expander" onclick="toggleSection('i:ic:AsRecConError:AsRecConError:1')"></span> <a href="Control-Exception-Lens.html#t:AsRecConError">AsRecConError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecConError">RecConError</a></span> <a href="src/Control-Exception-Lens.html#line-1067" class="link">Source</a> <a href="#t:AsRecConError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecConError:AsRecConError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecConError">_RecConError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecConError">RecConError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecConError" class="link">Source</a> <a href="#v:_RecConError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecConError:AsRecConError:2" class="instance expander" onclick="toggleSection('i:ic:AsRecConError:AsRecConError:2')"></span> <a href="Control-Exception-Lens.html#t:AsRecConError">AsRecConError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1071" class="link">Source</a> <a href="#t:AsRecConError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecConError:AsRecConError:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecConError">_RecConError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecConError" class="link">Source</a> <a href="#v:_RecConError" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsRecSelError" class="def">AsRecSelError</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsRecSelError" class="link">Source</a> <a href="#t:AsRecSelError" class="selflink">#</a></p><div class="doc"><p>A record selector was applied to a constructor without the appropriate
field. This can only happen with a datatype with multiple constructors,
where some fields are in one constructor but not another.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_RecSelError" class="def">_RecSelError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecSelError" class="link">Source</a> <a href="#v:_RecSelError" class="selflink">#</a></p><div class="doc"><p>Information about the source location where the record selection occurred.</p></div></div><div class="subs instances"><p id="control.i:AsRecSelError" class="caption collapser" onclick="toggleSection('i:AsRecSelError')">Instances</p><div id="section.i:AsRecSelError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecSelError:AsRecSelError:1" class="instance expander" onclick="toggleSection('i:ic:AsRecSelError:AsRecSelError:1')"></span> <a href="Control-Exception-Lens.html#t:AsRecSelError">AsRecSelError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a></span> <a href="src/Control-Exception-Lens.html#line-1091" class="link">Source</a> <a href="#t:AsRecSelError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecSelError:AsRecSelError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecSelError">_RecSelError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecSelError">RecSelError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecSelError" class="link">Source</a> <a href="#v:_RecSelError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecSelError:AsRecSelError:2" class="instance expander" onclick="toggleSection('i:ic:AsRecSelError:AsRecSelError:2')"></span> <a href="Control-Exception-Lens.html#t:AsRecSelError">AsRecSelError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1095" class="link">Source</a> <a href="#t:AsRecSelError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecSelError:AsRecSelError:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecSelError">_RecSelError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecSelError" class="link">Source</a> <a href="#v:_RecSelError" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsRecUpdError" class="def">AsRecUpdError</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsRecUpdError" class="link">Source</a> <a href="#t:AsRecUpdError" class="selflink">#</a></p><div class="doc"><p>A record update was performed on a constructor without the
appropriate field. This can only happen with a datatype with multiple
constructors, where some fields are in one constructor but not another.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_RecUpdError" class="def">_RecUpdError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecUpdError" class="link">Source</a> <a href="#v:_RecUpdError" class="selflink">#</a></p><div class="doc"><p>Information about the source location where the record was updated.</p></div></div><div class="subs instances"><p id="control.i:AsRecUpdError" class="caption collapser" onclick="toggleSection('i:AsRecUpdError')">Instances</p><div id="section.i:AsRecUpdError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecUpdError:AsRecUpdError:1" class="instance expander" onclick="toggleSection('i:ic:AsRecUpdError:AsRecUpdError:1')"></span> <a href="Control-Exception-Lens.html#t:AsRecUpdError">AsRecUpdError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a></span> <a href="src/Control-Exception-Lens.html#line-1115" class="link">Source</a> <a href="#t:AsRecUpdError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecUpdError:AsRecUpdError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecUpdError">_RecUpdError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:RecUpdError">RecUpdError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecUpdError" class="link">Source</a> <a href="#v:_RecUpdError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsRecUpdError:AsRecUpdError:2" class="instance expander" onclick="toggleSection('i:ic:AsRecUpdError:AsRecUpdError:2')"></span> <a href="Control-Exception-Lens.html#t:AsRecUpdError">AsRecUpdError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1119" class="link">Source</a> <a href="#t:AsRecUpdError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsRecUpdError:AsRecUpdError:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_RecUpdError">_RecUpdError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_RecUpdError" class="link">Source</a> <a href="#v:_RecUpdError" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:RecConError_" class="def">RecConError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecConError">AsRecConError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#RecConError_" class="link">Source</a> <a href="#v:RecConError_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:RecSelError_" class="def">RecSelError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecSelError">AsRecSelError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#RecSelError_" class="link">Source</a> <a href="#v:RecSelError_" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:RecUpdError_" class="def">RecUpdError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsRecUpdError">AsRecUpdError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#RecUpdError_" class="link">Source</a> <a href="#v:RecUpdError_" class="selflink">#</a></p></div><h2 id="g:21">Error Call</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsErrorCall" class="def">AsErrorCall</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsErrorCall" class="link">Source</a> <a href="#t:AsErrorCall" class="selflink">#</a></p><div class="doc"><p>This is thrown when the user calls <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#v:error">error</a></code>.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_ErrorCall" class="def">_ErrorCall</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_ErrorCall" class="link">Source</a> <a href="#v:_ErrorCall" class="selflink">#</a></p><div class="doc"><p>Retrieve the argument given to <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#v:error">error</a></code>.</p><p><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a></code> is isomorphic to a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>catching _ErrorCall (error "touch down!") return
</code></strong>"touch down!"
</pre></div></div><div class="subs instances"><p id="control.i:AsErrorCall" class="caption collapser" onclick="toggleSection('i:AsErrorCall')">Instances</p><div id="section.i:AsErrorCall" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsErrorCall:AsErrorCall:1" class="instance expander" onclick="toggleSection('i:ic:AsErrorCall:AsErrorCall:1')"></span> <a href="Control-Exception-Lens.html#t:AsErrorCall">AsErrorCall</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a></span> <a href="src/Control-Exception-Lens.html#line-1142" class="link">Source</a> <a href="#t:AsErrorCall" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsErrorCall:AsErrorCall:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ErrorCall">_ErrorCall</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ErrorCall">ErrorCall</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_ErrorCall" class="link">Source</a> <a href="#v:_ErrorCall" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsErrorCall:AsErrorCall:2" class="instance expander" onclick="toggleSection('i:ic:AsErrorCall:AsErrorCall:2')"></span> <a href="Control-Exception-Lens.html#t:AsErrorCall">AsErrorCall</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1146" class="link">Source</a> <a href="#t:AsErrorCall" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsErrorCall:AsErrorCall:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_ErrorCall">_ErrorCall</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_ErrorCall" class="link">Source</a> <a href="#v:_ErrorCall" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:ErrorCall_" class="def">ErrorCall_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsErrorCall">AsErrorCall</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#ErrorCall_" class="link">Source</a> <a href="#v:ErrorCall_" class="selflink">#</a></p></div><h2 id="g:22">Allocation Limit Exceeded</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsAllocationLimitExceeded" class="def">AsAllocationLimitExceeded</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsAllocationLimitExceeded" class="link">Source</a> <a href="#t:AsAllocationLimitExceeded" class="selflink">#</a></p><div class="doc"><p>This thread has exceeded its allocation limit.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_AllocationLimitExceeded" class="def">_AllocationLimitExceeded</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_AllocationLimitExceeded" class="link">Source</a> <a href="#v:_AllocationLimitExceeded" class="selflink">#</a></p><div class="doc"><p>There is no additional information carried in an
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_AllocationLimitExceeded">_AllocationLimitExceeded</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_AllocationLimitExceeded">_AllocationLimitExceeded</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsAllocationLimitExceeded" class="caption collapser" onclick="toggleSection('i:AsAllocationLimitExceeded')">Instances</p><div id="section.i:AsAllocationLimitExceeded" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:1" class="instance expander" onclick="toggleSection('i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:1')"></span> <a href="Control-Exception-Lens.html#t:AsAllocationLimitExceeded">AsAllocationLimitExceeded</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a></span> <a href="src/Control-Exception-Lens.html#line-1171" class="link">Source</a> <a href="#t:AsAllocationLimitExceeded" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AllocationLimitExceeded">_AllocationLimitExceeded</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AllocationLimitExceeded">AllocationLimitExceeded</a> () <a href="src/Control-Exception-Lens.html#_AllocationLimitExceeded" class="link">Source</a> <a href="#v:_AllocationLimitExceeded" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:2" class="instance expander" onclick="toggleSection('i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:2')"></span> <a href="Control-Exception-Lens.html#t:AsAllocationLimitExceeded">AsAllocationLimitExceeded</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1175" class="link">Source</a> <a href="#t:AsAllocationLimitExceeded" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsAllocationLimitExceeded:AsAllocationLimitExceeded:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_AllocationLimitExceeded">_AllocationLimitExceeded</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_AllocationLimitExceeded" class="link">Source</a> <a href="#v:_AllocationLimitExceeded" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:AllocationLimitExceeded_" class="def">AllocationLimitExceeded_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsAllocationLimitExceeded">AsAllocationLimitExceeded</a> s => s <a href="src/Control-Exception-Lens.html#AllocationLimitExceeded_" class="link">Source</a> <a href="#v:AllocationLimitExceeded_" class="selflink">#</a></p></div><h2 id="g:23">Type Error</h2><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsTypeError" class="def">AsTypeError</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsTypeError" class="link">Source</a> <a href="#t:AsTypeError" class="selflink">#</a></p><div class="doc"><p>An expression that didn't typecheck during compile time was called.
This is only possible with <code>-fdefer-type-errors</code>.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_TypeError" class="def">_TypeError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_TypeError" class="link">Source</a> <a href="#v:_TypeError" class="selflink">#</a></p><div class="doc"><p>Details about the failed type check.</p><pre><code><a href="Control-Exception-Lens.html#v:_TypeError">_TypeError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:TypeError">TypeError</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_TypeError">_TypeError</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsTypeError" class="caption collapser" onclick="toggleSection('i:AsTypeError')">Instances</p><div id="section.i:AsTypeError" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsTypeError:AsTypeError:1" class="instance expander" onclick="toggleSection('i:ic:AsTypeError:AsTypeError:1')"></span> <a href="Control-Exception-Lens.html#t:AsTypeError">AsTypeError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:TypeError">TypeError</a></span> <a href="src/Control-Exception-Lens.html#line-1199" class="link">Source</a> <a href="#t:AsTypeError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsTypeError:AsTypeError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_TypeError">_TypeError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:TypeError">TypeError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_TypeError" class="link">Source</a> <a href="#v:_TypeError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsTypeError:AsTypeError:2" class="instance expander" onclick="toggleSection('i:ic:AsTypeError:AsTypeError:2')"></span> <a href="Control-Exception-Lens.html#t:AsTypeError">AsTypeError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1203" class="link">Source</a> <a href="#t:AsTypeError" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsTypeError:AsTypeError:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_TypeError">_TypeError</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Control-Exception-Lens.html#_TypeError" class="link">Source</a> <a href="#v:_TypeError" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:TypeError_" class="def">TypeError_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsTypeError">AsTypeError</a> s => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -> s <a href="src/Control-Exception-Lens.html#TypeError_" class="link">Source</a> <a href="#v:TypeError_" class="selflink">#</a></p></div><h1 id="g:24">Handling Exceptions</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:AsHandlingException" class="def">AsHandlingException</a> t <span class="keyword">where</span> <a href="src/Control-Exception-Lens.html#AsHandlingException" class="link">Source</a> <a href="#t:AsHandlingException" class="selflink">#</a></p><div class="doc"><p>This <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:Exception">Exception</a></code> is thrown by <code>lens</code> when the user somehow manages to rethrow
an internal <code><a href="Control-Lens-Internal-Exception.html#t:HandlingException">HandlingException</a></code>.</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:_HandlingException" class="def">_HandlingException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> t () <a href="src/Control-Exception-Lens.html#_HandlingException" class="link">Source</a> <a href="#v:_HandlingException" class="selflink">#</a></p><div class="doc"><p>There is no information carried in a <code><a href="Control-Lens-Internal-Exception.html#t:HandlingException">HandlingException</a></code>.</p><pre><code><a href="Control-Exception-Lens.html#v:_HandlingException">_HandlingException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="Control-Lens-Internal-Exception.html#t:HandlingException">HandlingException</a></code> ()
<code><a href="Control-Exception-Lens.html#v:_HandlingException">_HandlingException</a></code> :: <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> ()
</pre></div></div><div class="subs instances"><p id="control.i:AsHandlingException" class="caption collapser" onclick="toggleSection('i:AsHandlingException')">Instances</p><div id="section.i:AsHandlingException" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsHandlingException:AsHandlingException:1" class="instance expander" onclick="toggleSection('i:ic:AsHandlingException:AsHandlingException:1')"></span> <a href="Control-Exception-Lens.html#t:AsHandlingException">AsHandlingException</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/Control-Exception-Lens.html#line-1258" class="link">Source</a> <a href="#t:AsHandlingException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsHandlingException:AsHandlingException:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_HandlingException">_HandlingException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> () <a href="src/Control-Exception-Lens.html#_HandlingException" class="link">Source</a> <a href="#v:_HandlingException" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AsHandlingException:AsHandlingException:2" class="instance expander" onclick="toggleSection('i:ic:AsHandlingException:AsHandlingException:2')"></span> <a href="Control-Exception-Lens.html#t:AsHandlingException">AsHandlingException</a> <a href="Control-Lens-Internal-Exception.html#t:HandlingException">HandlingException</a></span> <a href="src/Control-Exception-Lens.html#line-1254" class="link">Source</a> <a href="#t:AsHandlingException" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:AsHandlingException:AsHandlingException:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:_HandlingException">_HandlingException</a> :: <a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a> <a href="Control-Lens-Internal-Exception.html#t:HandlingException">HandlingException</a> () <a href="src/Control-Exception-Lens.html#_HandlingException" class="link">Source</a> <a href="#v:_HandlingException" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:HandlingException_" class="def">HandlingException_</a> :: <span class="keyword">forall</span> s. <a href="Control-Exception-Lens.html#t:AsHandlingException">AsHandlingException</a> s => s <a href="src/Control-Exception-Lens.html#HandlingException_" class="link">Source</a> <a href="#v:HandlingException_" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>
|