This file is indexed.

/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 &lt;ekmett@gmail.com&gt;</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 =&gt; <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 -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 -&gt; b -&gt; 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> () -&gt; 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 =&gt; <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 -&gt; b -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -&gt; <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 -&gt; b -&gt; 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') =&gt; <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' =&gt; <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 =&gt; <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 =&gt; t -&gt; <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 -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> -&gt; 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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; <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 =&gt; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; 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 =&gt; <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 -&gt; m r -&gt; (a -&gt; m r) -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>catching _AssertionFailed (assert False (return &quot;uncaught&quot;)) $ \ _ -&gt; return &quot;caught&quot;
</code></strong>&quot;caught&quot;
</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 =&gt; <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     -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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      -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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 -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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       -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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     -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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       -&gt; m r -&gt; (a -&gt; m r) -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>catching_ _AssertionFailed (assert False (return &quot;uncaught&quot;)) $ return &quot;caught&quot;
</code></strong>&quot;caught&quot;
</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 =&gt; <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     -&gt; m r -&gt; m r -&gt; 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 =&gt; <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      -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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 =&gt; <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       -&gt; m r -&gt; m r -&gt; 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 =&gt; <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     -&gt; m r -&gt; m r -&gt; 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 =&gt; <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       -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; m r -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>handling _NonTermination (\_ -&gt; return &quot;caught&quot;) $ throwIO NonTermination
</code></strong>&quot;caught&quot;
</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 =&gt; <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     -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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      -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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       -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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       -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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     -&gt; (a -&gt; m r) -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>handling_ _NonTermination (return &quot;caught&quot;) $ throwIO NonTermination
</code></strong>&quot;caught&quot;
</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 =&gt; <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     -&gt; m r -&gt; m r -&gt; 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 =&gt; <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      -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; m r -&gt; 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 =&gt; <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       -&gt; m r -&gt; m r -&gt; 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 =&gt; <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     -&gt; m r -&gt; m r -&gt; 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 =&gt; <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       -&gt; m r -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 =&gt; <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 -&gt; m r -&gt; 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 -&gt; b -&gt; 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 &#8801; <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 -&gt; t -&gt; 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   -&gt; t -&gt; 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> () -&gt; 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 =&gt; 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 =&gt; <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 -&gt; b -&gt; 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  &#8801; <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 &#8801; 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 &#8801; <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 =&gt; <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 -&gt; t -&gt; 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 =&gt; <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   -&gt; t -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Concurrent.html#t:ThreadId">ThreadId</a> -&gt; <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 -&gt; b -&gt; 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 &#8801; <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> -&gt; <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 -&gt; t -&gt; 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> -&gt; <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   -&gt; t -&gt; 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') =&gt; <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' &#8801; '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 &#8220;A Semantics for Imprecise Exceptions&#8221; by
 Peyton Jones &amp; al. at PLDI &#8217;99.</p><p>The following maps failed assertions to arithmetic overflow:</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>handling _Overflow (\_ -&gt; return &quot;caught&quot;) $ assert False (return &quot;uncaught&quot;) &amp; mappedException %~ \ (AssertionFailed _) -&gt; Overflow
</code></strong>&quot;caught&quot;
</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' =&gt; <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">&gt;&gt;&gt; </code><strong class="userinput"><code>handling _Overflow (\_ -&gt; return &quot;caught&quot;) $ assert False (return &quot;uncaught&quot;) &amp; mappedException' .~ Overflow
</code></strong>&quot;caught&quot;
</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 =&gt; <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)
          =&gt; (a -&gt; f a) -&gt; <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> -&gt; 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 =&gt; t -&gt; <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 -&gt; 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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; 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 -&gt; <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> &quot;Assertion Failed\n&quot; <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 -&gt; <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> &quot;Error\n&quot; <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 -&gt; (a -&gt; <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) -&gt; <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 -&gt; (a -&gt; <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) -&gt; <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 -&gt; (a -&gt; <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) -&gt; <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 -&gt; (a -&gt; <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) -&gt; <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 -&gt; (a -&gt; <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) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 =&gt; <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 -&gt; m r -&gt; 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> &quot;looped&quot;)
            , <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> &quot;overflow&quot;)
            ]
</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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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 -&gt; m r -&gt; <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">&nbsp;</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 =&gt; <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 -&gt; (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> r) -&gt; <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 =&gt; <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 -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> r -&gt; <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> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a>) m =&gt; <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">&nbsp;</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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 =&gt; <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 -&gt; m r -&gt; <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">&nbsp;</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 =&gt; <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 -&gt; (a -&gt; m r) -&gt; <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 =&gt; <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 -&gt; m r -&gt; <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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:IOException">IOException</a> -&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArithException">ArithException</a> -&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <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> &#8801; <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 =&gt; <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> &#8801; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:ArrayException">ArrayException</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>handling _AssertionFailed (\ xs -&gt; &quot;caught&quot; &lt;$ guard (&quot;&lt;interactive&gt;&quot; `isInfixOf` xs) ) $ assert False (return &quot;uncaught&quot;)
</code></strong>&quot;caught&quot;
</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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:AsyncException">AsyncException</a> -&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&gt;&gt;&gt; </code><strong class="userinput"><code>catching _ErrorCall (error &quot;touch down!&quot;) return
</code></strong>&quot;touch down!&quot;
</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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; 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">&nbsp;</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">&nbsp;</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 =&gt; 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>