This file is indexed.

/usr/share/doc/libghc-lens-doc/html/Control-Monad-Error-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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Monad.Error.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-Monad-Error-Lens.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Monad-Error-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) 2014-2016 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.Monad.Error</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Monad.Error.Lens</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Catching</a></li><li><a href="#g:2">Handling</a></li><li><a href="#g:3">Trying</a></li><li><a href="#g:4">Handlers</a></li><li><a href="#g:5">Throwing</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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:catches">catches</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; m a -&gt; [<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a] -&gt; m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Handler">Handler</a> e m r = <a href="#v:Handler">Handler</a> (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (a -&gt; m r)</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"><a href="#v:throwing">throwing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; <a href="Control-Lens-Type.html#t:AReview">AReview</a> e t -&gt; t -&gt; m x</li><li class="src short"><a href="#v:throwing_">throwing_</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; <a href="Control-Lens-Type.html#t:AReview">AReview</a> e () -&gt; m x</li></ul></div><div id="interface"><h1 id="g:1">Catching</h1><div class="top"><p class="src"><a id="v:catching" class="def">catching</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e a -&gt; m r -&gt; (a -&gt; m r) -&gt; m r <a href="src/Control-Monad-Error-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>, really).</p><pre><code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e a     -&gt; m r -&gt; (a -&gt; m r) -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> e a      -&gt; m r -&gt; (a -&gt; m r) -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> e a -&gt; m r -&gt; (a -&gt; m r) -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e a       -&gt; m r -&gt; (a -&gt; m r) -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e a     -&gt; m r -&gt; (a -&gt; m r) -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching">catching</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e a -&gt; m r -&gt; m r -&gt; m r <a href="src/Control-Monad-Error-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><code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e a     -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> e a      -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> e a -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e a       -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e a     -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:catching_">catching_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e a       -&gt; m r -&gt; m r -&gt; m r
</pre></div></div><h1 id="g:2">Handling</h1><div class="top"><p class="src"><a id="v:handling" class="def">handling</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e a -&gt; (a -&gt; m r) -&gt; m r -&gt; m r <a href="src/Control-Monad-Error-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-Monad-Error-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><code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e a     -&gt; (a -&gt; m r) -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> e a      -&gt; (a -&gt; m r) -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> e a -&gt; (a -&gt; m r) -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e a       -&gt; (a -&gt; m r) -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e a       -&gt; (a -&gt; m r) -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e 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-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e a -&gt; m r -&gt; m r -&gt; m r <a href="src/Control-Monad-Error-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-Monad-Error-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><code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e a     -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> e a      -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> e a -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e a       -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e a     -&gt; m r -&gt; m r -&gt; m r
<code><a href="Control-Monad-Error-Lens.html#v:handling_">handling_</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e a       -&gt; m r -&gt; m r -&gt; m r
</pre></div></div><h1 id="g:3">Trying</h1><div class="top"><p class="src"><a id="v:trying" class="def">trying</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e 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) e 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-Monad-Error-Lens.html#trying" class="link">Source</a> <a href="#v:trying" class="selflink">#</a></p><div class="doc"><p><code><a href="Control-Monad-Error-Lens.html#v:trying">trying</a></code> takes a <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>) to select which exceptions are caught
 If the <code>Exception</code> does not match the predicate, it is re-thrown.</p><pre><code><a href="Control-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e 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-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> e 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-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> e 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-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e 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-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> e 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-Monad-Error-Lens.html#v:trying">trying</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> e 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><h1 id="g:4">Handlers</h1><div class="top"><p class="src"><a id="v:catches" class="def">catches</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; m a -&gt; [<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a] -&gt; m a <a href="src/Control-Monad-Error-Lens.html#catches" class="link">Source</a> <a href="#v:catches" class="selflink">#</a></p><div class="doc"><p>This function exists to remedy a gap between the functionality of <code>Control.Exception</code>
 and <code>Control.Monad.Error</code>. <code>Control.Exception</code> supplies <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#v:catches">catches</a></code> and
 a notion of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception.html#v:Handler">Handler</a></code>, which we duplicate here in a form suitable for
 working with any <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> instance.</p><p>Sometimes you want to catch two different sorts of error. You could
 do something like</p><pre>f = <code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> _Foo handleFoo (<code><a href="Control-Monad-Error-Lens.html#v:handling">handling</a></code> _Bar handleBar expr)
</pre><p>However, there are a couple of problems with this approach. The first is
 that having two exception handlers is inefficient. However, the more
 serious issue is that the second exception handler will catch exceptions
 in the first, e.g. in the example above, if <code>handleFoo</code> uses <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#v:throwError">throwError</a></code>
 then the second exception handler will catch it.</p><p>Instead, we provide a function <code><a href="Control-Monad-Error-Lens.html#v:catches">catches</a></code>, which would be used thus:</p><pre>f = <code><a href="Control-Monad-Error-Lens.html#v:catches">catches</a></code> expr [ <code><a href="Control-Monad-Error-Lens.html#v:handler">handler</a></code> _Foo handleFoo
                 , <code><a href="Control-Monad-Error-Lens.html#v:handler">handler</a></code> _Bar handleBar
                 ]
</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Handler" class="def">Handler</a> e m r <a href="src/Control-Monad-Error-Lens.html#Handler" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></p><div class="doc"><p>You need this when using <code><a href="Control-Monad-Error-Lens.html#v:catches">catches</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Handler" class="def">Handler</a> (e -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (a -&gt; m r)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Handler" class="caption collapser" onclick="toggleSection('i:Handler')">Instances</p><div id="section.i:Handler" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Handleable:1" class="instance expander" onclick="toggleSection('i:id:Handler:Handleable:1')"></span> <a href="Control-Monad-Error-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-Monad-Error-Lens.html#line-201" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler: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) 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><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Functor:2" class="instance expander" onclick="toggleSection('i:id:Handler:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m)</span> <a href="src/Control-Monad-Error-Lens.html#line-175" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m b -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Plus:3" class="instance expander" onclick="toggleSection('i:id:Handler:Plus:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Plus.html#t:Plus">Plus</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m)</span> <a href="src/Control-Monad-Error-Lens.html#line-191" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Plus:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:zero">zero</a> :: <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:zero" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Alt:4" class="instance expander" onclick="toggleSection('i:id:Handler:Alt:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Alt.html#t:Alt">Alt</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m)</span> <a href="src/Control-Monad-Error-Lens.html#line-185" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Alt:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--33--62-">(&lt;!&gt;)</a> :: <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:-60--33--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m) =&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m) =&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Semigroup:5" class="instance expander" onclick="toggleSection('i:id:Handler:Semigroup:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a)</span> <a href="src/Control-Monad-Error-Lens.html#line-181" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Semigroup:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-60--62-">(&lt;&gt;)</a> :: <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:-60--62-" class="selflink">#</a></p><p class="src"><a href="#v:sconcat">sconcat</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a) -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:sconcat" class="selflink">#</a></p><p class="src"><a href="#v:stimes">stimes</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Integral">Integral</a> b =&gt; b -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:stimes" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Handler:Monoid:6" class="instance expander" onclick="toggleSection('i:id:Handler:Monoid:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a)</span> <a href="src/Control-Monad-Error-Lens.html#line-195" class="link">Source</a> <a href="#t:Handler" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Handler:Monoid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a] -&gt; <a href="Control-Monad-Error-Lens.html#t:Handler">Handler</a> e m a <a href="#v:mconcat" 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: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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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-Monad-Error-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><h1 id="g:5">Throwing</h1><div class="top"><p class="src"><a id="v:throwing" class="def">throwing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; <a href="Control-Lens-Type.html#t:AReview">AReview</a> e t -&gt; t -&gt; m x <a href="src/Control-Monad-Error-Lens.html#throwing" class="link">Source</a> <a href="#v:throwing" class="selflink">#</a></p><div class="doc"><p>Throw an <code>Exception</code> described by a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code>.</p><pre><code><a href="Control-Monad-Error-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/libghc-mtl-doc/html/Control-Monad-Error-Class.html#v:throwError">throwError</a></code></pre><pre><code><a href="Control-Monad-Error-Lens.html#v:throwing">throwing</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> e t -&gt; t -&gt; a
<code><a href="Control-Monad-Error-Lens.html#v:throwing">throwing</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> e m =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> e t   -&gt; t -&gt; a
</pre></div></div><div class="top"><p class="src"><a id="v:throwing_" class="def">throwing_</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; <a href="Control-Lens-Type.html#t:AReview">AReview</a> e () -&gt; m x <a href="src/Control-Monad-Error-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-Monad-Error-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-Monad-Error-Lens.html#v:throwing_">throwing_</a></code> _Foo :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a></code> MyError m =&gt; m a
</pre></div></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>