This file is indexed.

/usr/share/doc/libghc-lens-doc/html/Control-Lens-Getter.html is in libghc-lens-doc 4.13-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
<!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.Lens.Getter</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Getter.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Getter.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.13: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(C) 2012-15 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>Rank2Types</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Lens.Getter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Getters</a></li><li><a href="#g:2">Building Getters</a></li><li><a href="#g:3">Combinators for Getters and Folds</a></li><li><a href="#g:4">Indexed Getters</a><ul><li><a href="#g:5">Indexed Getter Combinators</a></li></ul></li><li><a href="#g:6">Implementation Details</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A <code><code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a</code> is just any function <code>(s -&gt; a)</code>, which we've flipped
 into continuation passing style, <code>(a -&gt; r) -&gt; s -&gt; r</code> and decorated
 with <code><a href="Control-Lens-Getter.html#t:Const">Const</a></code> to obtain:</p><pre>type <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s a = (a -&gt; <code><a href="Control-Lens-Getter.html#t:Const">Const</a></code> r a) -&gt; s -&gt; <code><a href="Control-Lens-Getter.html#t:Const">Const</a></code> r s</pre><p>If we restrict access to knowledge about the type <code>r</code>, we could get:</p><pre>type <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a = forall r. <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s a</pre><p>However, for <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> (but not for <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code>) we actually permit any
 functor <code>f</code> which is an instance of both <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> and <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code>:</p><pre>type <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a = forall f. (<code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> f, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s</pre><p>Everything you can do with a function, you can do with a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>, but
 note that because of the continuation passing style (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code>) composes them
 in the opposite order.</p><p>Since it is only a function, every <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> obviously only retrieves a
 single value for a given input.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Getter">Getter</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedGetter">IndexedGetter</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p a (f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Getting">Getting</a> r s a = (a -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> r a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> r s</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedGetting">IndexedGetting</a> i m s a = <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Getter.html#t:Const">Const</a> m a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> m s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Accessing">Accessing</a> p m s a = p a (<a href="Control-Lens-Getter.html#t:Const">Const</a> m a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> m s</li><li class="src short"><a href="#v:to">to</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; (s -&gt; a) -&gt; <a href="Control-Lens-Type.html#t:Optic-39-">Optic'</a> p f s a</li><li class="src short"><a href="#v:ito">ito</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; (s -&gt; (i, a)) -&gt; <a href="Control-Lens-Type.html#t:Over-39-">Over'</a> p f s a</li><li class="src short"><a href="#v:like">like</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; a -&gt; <a href="Control-Lens-Type.html#t:Optic-39-">Optic'</a> p f s a</li><li class="src short"><a href="#v:ilike">ilike</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; i -&gt; a -&gt; <a href="Control-Lens-Type.html#t:Over-39-">Over'</a> p f s a</li><li class="src short"><a href="#v:-94-.">(^.)</a> :: s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; a</li><li class="src short"><a href="#v:view">view</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; m a</li><li class="src short"><a href="#v:views">views</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:use">use</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; m a</li><li class="src short"><a href="#v:uses">uses</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:listening">listening</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> u w u -&gt; m a -&gt; m (a, u)</li><li class="src short"><a href="#v:listenings">listenings</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> v w u -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)</li><li class="src short"><a href="#v:-94--64-.">(^@.)</a> :: s -&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; (i, a)</li><li class="src short"><a href="#v:iview">iview</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; m (i, a)</li><li class="src short"><a href="#v:iviews">iviews</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:iuse">iuse</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; m (i, a)</li><li class="src short"><a href="#v:iuses">iuses</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:ilistening">ilistening</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, u) w u -&gt; m a -&gt; m (a, (i, u))</li><li class="src short"><a href="#v:ilistenings">ilistenings</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i v w u -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v)</li><li class="src short"><span class="keyword">class</span> <a href="#t:Contravariant">Contravariant</a> f <span class="keyword">where</span><ul class="subs"><li><a href="#v:contramap">contramap</a> :: (a -&gt; b) -&gt; f b -&gt; f a</li><li><a href="#v:-62--36-">(&gt;$)</a> :: b -&gt; f b -&gt; f a</li></ul></li><li class="src short"><a href="#v:getting">getting</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f s a</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Const">Const</a> a b :: * -&gt; * -&gt; * = <a href="#v:Const">Const</a> {<ul class="subs"><li><a href="#v:getConst">getConst</a> :: a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Getters</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Getter" class="def">Getter</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s <a href="src/Control-Lens-Type.html#Getter" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> describes how to retrieve a single value in a way that can be
 composed with other <code><a href="Control-Lens-Type.html#t:LensLike">LensLike</a></code> constructions.</p><p>Unlike a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> is read-only. Since a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>
 cannot be used to write back there are no <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> laws that can be applied to
 it. In fact, it is isomorphic to an arbitrary function from <code>(s -&gt; a)</code>.</p><p>Moreover, a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> can be used directly as a <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code>,
 since it just ignores the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedGetter" class="def">IndexedGetter</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p a (f a) -&gt; s -&gt; f s <a href="src/Control-Lens-Type.html#IndexedGetter" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> is a valid <code><a href="Control-Lens-Fold.html#v:IndexedFold">IndexedFold</a></code> and can be used for <code><a href="Control-Lens-Getter.html#v:Getting">Getting</a></code> like a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Getting" class="def">Getting</a> r s a = (a -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> r a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> r s <a href="src/Control-Lens-Getter.html#Getting" class="link">Source</a></p><div class="doc"><p>When you see this in a type signature it indicates that you can
 pass the function a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>,
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code>, <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code>,
 <code><a href="Control-Lens-Prism.html#v:Prism">Prism</a></code>, <code><a href="Control-Lens-Iso.html#v:Iso">Iso</a></code>, or one of
 the indexed variants, and it will just &quot;do the right thing&quot;.</p><p>Most <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> combinators are able to be used with both a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or a
 <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> in limited situations, to do so, they need to be
 monomorphic in what we are going to extract with <code><a href="Control-Lens-Getter.html#t:Const">Const</a></code>. To be compatible
 with <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> and
 <code><a href="Control-Lens-Iso.html#v:Iso">Iso</a></code> we also restricted choices of the irrelevant <code>t</code> and
 <code>b</code> parameters.</p><p>If a function accepts a <code><code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s a</code>, then when <code>r</code> is a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code>, then
 you can pass a <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> (or
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code>), otherwise you can only pass this a
 <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedGetting" class="def">IndexedGetting</a> i m s a = <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Getter.html#t:Const">Const</a> m a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> m s <a href="src/Control-Lens-Getter.html#IndexedGetting" class="link">Source</a></p><div class="doc"><p>Used to consume an <code><a href="Control-Lens-Fold.html#v:IndexedFold">IndexedFold</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Accessing" class="def">Accessing</a> p m s a = p a (<a href="Control-Lens-Getter.html#t:Const">Const</a> m a) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Const">Const</a> m s <a href="src/Control-Lens-Getter.html#Accessing" class="link">Source</a></p><div class="doc"><p>This is a convenient alias used when consuming (indexed) getters and (indexed) folds
 in a highly general fashion.</p></div></div><h1 id="g:2">Building Getters</h1><div class="top"><p class="src"><a name="v:to" class="def">to</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; (s -&gt; a) -&gt; <a href="Control-Lens-Type.html#t:Optic-39-">Optic'</a> p f s a <a href="src/Control-Lens-Getter.html#to" class="link">Source</a></p><div class="doc"><p>Build an (index-preserving) <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> from an arbitrary Haskell function.</p><pre><code><a href="Control-Lens-Getter.html#v:to">to</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Getter.html#v:to">to</a></code> g &#8801; <code><a href="Control-Lens-Getter.html#v:to">to</a></code> (g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> f)
</pre><pre>a <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Getter.html#v:to">to</a></code> f &#8801; f a
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>a ^.to f
</code></strong>f a
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(&quot;hello&quot;,&quot;world&quot;)^.to snd
</code></strong>&quot;world&quot;
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>5^.to succ
</code></strong>6
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(0, -5)^._2.to abs
</code></strong>5
</pre><pre><code><a href="Control-Lens-Getter.html#v:to">to</a></code> :: (s -&gt; a) -&gt; <code><a href="Control-Lens-Type.html#t:IndexPreservingGetter">IndexPreservingGetter</a></code> s a
</pre></div></div><div class="top"><p class="src"><a name="v:ito" class="def">ito</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; (s -&gt; (i, a)) -&gt; <a href="Control-Lens-Type.html#t:Over-39-">Over'</a> p f s a <a href="src/Control-Lens-Getter.html#ito" class="link">Source</a></p><div class="doc"><pre><code><a href="Control-Lens-Getter.html#v:ito">ito</a></code> :: (s -&gt; (i, a)) -&gt; <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i s a
</pre></div></div><div class="top"><p class="src"><a name="v:like" class="def">like</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; a -&gt; <a href="Control-Lens-Type.html#t:Optic-39-">Optic'</a> p f s a <a href="src/Control-Lens-Getter.html#like" class="link">Source</a></p><div class="doc"><p>Build an constant-valued (index-preserving) <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> from an arbitrary Haskell value.</p><pre><code><a href="Control-Lens-Getter.html#v:like">like</a></code> a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Getter.html#v:like">like</a></code> b &#8801; <code><a href="Control-Lens-Getter.html#v:like">like</a></code> b
a <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Getter.html#v:like">like</a></code> b &#8801; b
a <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Getter.html#v:like">like</a></code> b &#8801; a <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Getter.html#v:to">to</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code> b)
</pre><p>This can be useful as a second case <code>failing</code> a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>
 e.g. <code>foo <code>failing</code> <code><a href="Control-Lens-Getter.html#v:like">like</a></code> 0</code></p><pre><code><a href="Control-Lens-Getter.html#v:like">like</a></code> :: a -&gt; <code><a href="Control-Lens-Type.html#t:IndexPreservingGetter">IndexPreservingGetter</a></code> s a
</pre></div></div><div class="top"><p class="src"><a name="v:ilike" class="def">ilike</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; i -&gt; a -&gt; <a href="Control-Lens-Type.html#t:Over-39-">Over'</a> p f s a <a href="src/Control-Lens-Getter.html#ilike" class="link">Source</a></p><div class="doc"><pre><code><a href="Control-Lens-Getter.html#v:ilike">ilike</a></code> :: i -&gt; a -&gt; <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i s a
</pre></div></div><h1 id="g:3">Combinators for Getters and Folds</h1><div class="top"><p class="src"><a name="v:-94-." class="def">(^.)</a> :: s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; a <span class="fixity">infixl 8</span><span class="rightedge"></span> <a href="src/Control-Lens-Getter.html#%5E." class="link">Source</a></p><div class="doc"><p>View the value pointed to by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or the
 result of folding over all the results of a <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> or
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> that points at a monoidal values.</p><p>This is the same operation as <code><a href="Control-Lens-Getter.html#v:view">view</a></code> with the arguments flipped.</p><p>The fixity and semantics are such that subsequent field accesses can be
 performed with (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code>).</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(a,b)^._2
</code></strong>b
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(&quot;hello&quot;,&quot;world&quot;)^._2
</code></strong>&quot;world&quot;
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>import Data.Complex
</code></strong><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>((0, 1 :+ 2), 3)^._1._2.to magnitude
</code></strong>2.23606797749979
</pre><pre>(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) ::             s -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; a
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; s -&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s m       -&gt; m
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) ::             s -&gt; <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; a
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) ::             s -&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; a
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; s -&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s m -&gt; m
</pre></div></div><div class="top"><p class="src"><a name="v:view" class="def">view</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; m a <a href="src/Control-Lens-Getter.html#view" class="link">Source</a></p><div class="doc"><p>View the value pointed to by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>, <code><a href="Control-Lens-Iso.html#v:Iso">Iso</a></code> or
 <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or the result of folding over all the results of a
 <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> that points
 at a monoidal value.</p><pre><code><a href="Control-Lens-Getter.html#v:view">view</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Getter.html#v:to">to</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>view (to f) a
</code></strong>f a
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>view _2 (1,&quot;hello&quot;)
</code></strong>&quot;hello&quot;
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>view (to succ) 5
</code></strong>6
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>view (_2._1) (&quot;hello&quot;,(&quot;world&quot;,&quot;!!!&quot;))
</code></strong>&quot;world&quot;
</pre><p>As <code><a href="Control-Lens-Getter.html#v:view">view</a></code> is commonly used to access the target of a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or obtain a monoidal summary of the targets of a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>,
 It may be useful to think of it as having one of these more restricted signatures:</p><pre><code><a href="Control-Lens-Getter.html#v:view">view</a></code> ::             <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; s -&gt; a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s m       -&gt; s -&gt; m
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> ::             <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; s -&gt; a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> ::             <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; s -&gt; a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s m -&gt; s -&gt; m
</pre><p>In a more general setting, such as when working with a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code> transformer stack you can use:</p><pre><code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; m a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> a) =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a       -&gt; m a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; m a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; m a
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> a) =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -&gt; m a
</pre></div></div><div class="top"><p class="src"><a name="v:views" class="def">views</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -&gt; (a -&gt; r) -&gt; m r <a href="src/Control-Lens-Getter.html#views" class="link">Source</a></p><div class="doc"><p>View a function of the value pointed to by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or the result of
 folding over the result of mapping the targets of a <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> or
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code>.</p><pre><code><a href="Control-Lens-Getter.html#v:views">views</a></code> l f &#8801; <code><a href="Control-Lens-Getter.html#v:view">view</a></code> (l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Getter.html#v:to">to</a></code> f)
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>views (to f) g a
</code></strong>g (f a)
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>views _2 length (1,&quot;hello&quot;)
</code></strong>5
</pre><p>As <code><a href="Control-Lens-Getter.html#v:views">views</a></code> is commonly used to access the target of a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or obtain a monoidal summary of the targets of a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>,
 It may be useful to think of it as having one of these more restricted signatures:</p><pre><code><a href="Control-Lens-Getter.html#v:views">views</a></code> ::             <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; (a -&gt; r) -&gt; s -&gt; r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a       -&gt; (a -&gt; m) -&gt; s -&gt; m
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> ::             <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; (a -&gt; r) -&gt; s -&gt; r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> ::             <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; (a -&gt; r) -&gt; s -&gt; r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> m =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -&gt; (a -&gt; m) -&gt; s -&gt; m
</pre><p>In a more general setting, such as when working with a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code> transformer stack you can use:</p><pre><code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -&gt; (a -&gt; r) -&gt; m r
</pre><pre><code><a href="Control-Lens-Getter.html#v:views">views</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a></code> s m =&gt; <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s a -&gt; (a -&gt; r) -&gt; m r
</pre></div></div><div class="top"><p class="src"><a name="v:use" class="def">use</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -&gt; m a <a href="src/Control-Lens-Getter.html#use" class="link">Source</a></p><div class="doc"><p>Use the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#v:Iso">Iso</a></code>, or
 <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> in the current state, or use a summary of a
 <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> that points
 to a monoidal value.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>evalState (use _1) (a,b)
</code></strong>a
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>evalState (use _1) (&quot;hello&quot;,&quot;world&quot;)
</code></strong>&quot;hello&quot;
</pre><pre><code><a href="Control-Lens-Getter.html#v:use">use</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; m a
<code><a href="Control-Lens-Getter.html#v:use">use</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s r       -&gt; m r
<code><a href="Control-Lens-Getter.html#v:use">use</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; m a
<code><a href="Control-Lens-Getter.html#v:use">use</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; m a
<code><a href="Control-Lens-Getter.html#v:use">use</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s r -&gt; m r
</pre></div></div><div class="top"><p class="src"><a name="v:uses" class="def">uses</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -&gt; (a -&gt; r) -&gt; m r <a href="src/Control-Lens-Getter.html#uses" class="link">Source</a></p><div class="doc"><p>Use the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#v:Iso">Iso</a></code> or
 <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> in the current state, or use a summary of a
 <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> that
 points to a monoidal value.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>evalState (uses _1 length) (&quot;hello&quot;,&quot;world&quot;)
</code></strong>5
</pre><pre><code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a     -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
<code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -&gt; (a -&gt; r) -&gt; m r
</pre><pre><code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m =&gt; <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s t a b -&gt; (a -&gt; r) -&gt; m r
</pre></div></div><div class="top"><p class="src"><a name="v:listening" class="def">listening</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> u w u -&gt; m a -&gt; m (a, u) <a href="src/Control-Lens-Getter.html#listening" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:listen">listen</a></code> that only extracts the portion of
 the log that is focused on by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>. If given a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>
 then a monoidal summary of the parts of the log that are visited will be
 returned.</p><pre><code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> w u     -&gt; m a -&gt; m (a, u)
<code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> w u      -&gt; m a -&gt; m (a, u)
<code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> w u       -&gt; m a -&gt; m (a, u)
<code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> u) =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> w u       -&gt; m a -&gt; m (a, u)
<code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> u) =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> w u -&gt; m a -&gt; m (a, u)
<code><a href="Control-Lens-Getter.html#v:listening">listening</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> u) =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> w u     -&gt; m a -&gt; m (a, u)
</pre></div></div><div class="top"><p class="src"><a name="v:listenings" class="def">listenings</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> v w u -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v) <a href="src/Control-Lens-Getter.html#listenings" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:listen">listen</a></code> that only extracts the portion of
 the log that is focused on by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>. If given a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>
 then a monoidal summary of the parts of the log that are visited will be
 returned.</p><pre><code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> w u     -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> w u      -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> w u       -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> v) =&gt; <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> w u       -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> v) =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> w u -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:listenings">listenings</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> v) =&gt; <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> w u     -&gt; (u -&gt; v) -&gt; m a -&gt; m (a, v)
</pre></div></div><h1 id="g:4">Indexed Getters</h1><h2 id="g:5">Indexed Getter Combinators</h2><div class="top"><p class="src"><a name="v:-94--64-." class="def">(^@.)</a> :: s -&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; (i, a) <span class="fixity">infixl 8</span><span class="rightedge"></span> <a href="src/Control-Lens-Getter.html#%5E%40." class="link">Source</a></p><div class="doc"><p>View the index and value of an <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code>.</p><p>This is the same operation as <code><a href="Control-Lens-Getter.html#v:iview">iview</a></code> with the arguments flipped.</p><p>The fixity and semantics are such that subsequent field accesses can be
 performed with (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code>).</p><pre>(<code><a href="Control-Lens-Getter.html#v:-94--64-.">^@.</a></code>) :: s -&gt; <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i s a -&gt; (i, a)
(<code><a href="Control-Lens-Getter.html#v:-94--64-.">^@.</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> i s a  -&gt; (i, a)
</pre><p>The result probably doesn't have much meaning when applied to an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:iview" class="def">iview</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; m (i, a) <a href="src/Control-Lens-Getter.html#iview" class="link">Source</a></p><div class="doc"><p>View the index and value of an <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> into the current environment as a pair.</p><p>When applied to an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> the result will most likely be a nonsensical monoidal summary of
 the indices tupled with a monoidal summary of the values and probably not whatever it is you wanted.</p></div></div><div class="top"><p class="src"><a name="v:iviews" class="def">iviews</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -&gt; (i -&gt; a -&gt; r) -&gt; m r <a href="src/Control-Lens-Getter.html#iviews" class="link">Source</a></p><div class="doc"><p>View a function of the index and value of an <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> into the current environment.</p><p>When applied to an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> the result will be a monoidal summary instead of a single answer.</p><pre><code><a href="Control-Lens-Getter.html#v:iviews">iviews</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:ifoldMapOf">ifoldMapOf</a></code>
</pre></div></div><div class="top"><p class="src"><a name="v:iuse" class="def">iuse</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -&gt; m (i, a) <a href="src/Control-Lens-Getter.html#iuse" class="link">Source</a></p><div class="doc"><p>Use the index and value of an <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> into the current state as a pair.</p><p>When applied to an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> the result will most likely be a nonsensical monoidal summary of
 the indices tupled with a monoidal summary of the values and probably not whatever it is you wanted.</p></div></div><div class="top"><p class="src"><a name="v:iuses" class="def">iuses</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -&gt; (i -&gt; a -&gt; r) -&gt; m r <a href="src/Control-Lens-Getter.html#iuses" class="link">Source</a></p><div class="doc"><p>Use a function of the index and value of an <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> into the current state.</p><p>When applied to an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> the result will be a monoidal summary instead of a single answer.</p></div></div><div class="top"><p class="src"><a name="v:ilistening" class="def">ilistening</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, u) w u -&gt; m a -&gt; m (a, (i, u)) <a href="src/Control-Lens-Getter.html#ilistening" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:listen">listen</a></code> that only extracts the portion of
 the log that is focused on by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>. If given a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>
 then a monoidal summary of the parts of the log that are visited will be
 returned.</p><pre><code><a href="Control-Lens-Getter.html#v:ilistening">ilistening</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i w u     -&gt; m a -&gt; m (a, (i, u))
<code><a href="Control-Lens-Getter.html#v:ilistening">ilistening</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> i w u      -&gt; m a -&gt; m (a, (i, u))
<code><a href="Control-Lens-Getter.html#v:ilistening">ilistening</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> u) =&gt; <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> i w u       -&gt; m a -&gt; m (a, (i, u))
<code><a href="Control-Lens-Getter.html#v:ilistening">ilistening</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> u) =&gt; <code><a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a></code> i w u -&gt; m a -&gt; m (a, (i, u))
</pre></div></div><div class="top"><p class="src"><a name="v:ilistenings" class="def">ilistenings</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i v w u -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v) <a href="src/Control-Lens-Getter.html#ilistenings" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:listen">listen</a></code> that only extracts the portion of
 the log that is focused on by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>. If given a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>
 then a monoidal summary of the parts of the log that are visited will be
 returned.</p><pre><code><a href="Control-Lens-Getter.html#v:ilistenings">ilistenings</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> w u     -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:ilistenings">ilistenings</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m             =&gt; <code><a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> w u      -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:ilistenings">ilistenings</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> v) =&gt; <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> w u       -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v)
<code><a href="Control-Lens-Getter.html#v:ilistenings">ilistenings</a></code> :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> w m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> v) =&gt; <code><a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a></code> w u -&gt; (i -&gt; u -&gt; v) -&gt; m a -&gt; m (a, v)
</pre></div></div><h1 id="g:6">Implementation Details</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Contravariant" class="def">Contravariant</a> f <span class="keyword">where</span></p><div class="doc"><p>Any instance should be subject to the following laws:</p><pre>contramap id = id
contramap f . contramap g = contramap (g . f)</pre><p>Note, that the second law follows from the free theorem of the type of
 <code><a href="Control-Lens-Getter.html#v:contramap">contramap</a></code> and the first law, so you need only check that the former
 condition holds.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Getter.html#v:contramap">contramap</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:contramap" class="def">contramap</a> :: (a -&gt; b) -&gt; f b -&gt; f a</p><p class="src"><a name="v:-62--36-" class="def">(&gt;$)</a> :: b -&gt; f b -&gt; f a <span class="fixity">infixl 4</span><span class="rightedge"></span></p><div class="doc"><p>Replace all locations in the output with the same value.
 The default definition is <code><code><a href="Control-Lens-Getter.html#v:contramap">contramap</a></code> . <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code></code>, but this may be
 overridden with a more efficient version.</p></div></div><div class="subs instances"><p id="control.i:Contravariant" class="caption collapser" onclick="toggleSection('i:Contravariant')">Instances</p><div id="section.i:Contravariant" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:V1">V1</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:U1">U1</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Predicate">Predicate</a></span></td><td class="doc"><p>A <code><a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Predicate">Predicate</a></code> is a <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Control-Lens-Getter.html#v:contramap">contramap</a></code> can
 apply its function argument to the input of the predicate.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Comparison">Comparison</a></span></td><td class="doc"><p>A <code><a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Comparison">Comparison</a></code> is a <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, because <code><a href="Control-Lens-Getter.html#v:contramap">contramap</a></code> can
 apply its function argument to each input of the comparison function.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> <a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Equivalence">Equivalence</a></span></td><td class="doc"><p>Equivalence relations are <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code>, because you can
 apply the contramapped function to each input to the equivalence
 relation.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> SettableStateVar</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rec1">Rec1</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Proxy.html#t:Proxy">Proxy</a> *)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Trans-Identity.html#t:IdentityT">IdentityT</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Op">Op</a> a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-List.html#t:ListT">ListT</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Reverse.html#t:Reverse">Reverse</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Constant.html#t:Constant">Constant</a> a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Indexed.html#t:Indexing64">Indexing64</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Indexed.html#t:Indexing">Indexing</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:K1">K1</a> i c)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::-43-:">(:+:)</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::-42-:">(:*:)</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t::.:">(:.:)</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Alt">Alt</a> * f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-comonad-doc/html/Data-Functor-Coproduct.html#t:Coproduct">Coproduct</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant-Compose.html#t:ComposeFC">ComposeFC</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant-Compose.html#t:ComposeCF">ComposeCF</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader.html#t:ReaderT">ReaderT</a> r m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Except.html#t:ExceptT">ExceptT</a> e m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Sum.html#t:Sum">Sum</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Product.html#t:Product">Product</a> f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Zoom.html#t:Effect">Effect</a> m r)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Getter.html#t:AlongsideRight">AlongsideRight</a> f a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Getter.html#t:AlongsideLeft">AlongsideLeft</a> f b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:M1">M1</a> i c f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Zoom.html#t:EffectRWS">EffectRWS</a> w st m s)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT1">BazaarT1</a> p g a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT">BazaarT</a> p g a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Magma.html#t:TakingWhile">TakingWhile</a> p f a b)</span></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:getting" class="def">getting</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f s a <a href="src/Control-Lens-Getter.html#getting" class="link">Source</a></p><div class="doc"><p>Coerce a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>-compatible <code><a href="Control-Lens-Type.html#t:LensLike">LensLike</a></code> to a <code><a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a></code>. This
 is useful when using a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> that is not simple as a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or a
 <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Const" class="def">Const</a> a b :: * -&gt; * -&gt; *</p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Const" class="def">Const</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:getConst" class="def">getConst</a> :: a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Const" class="caption collapser" onclick="toggleSection('i:Const')">Instances</p><div id="section.i:Const" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Biapplicative.html#t:Biapplicative">Biapplicative</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bitraversable.html#t:Bitraversable">Bitraversable</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifoldable.html#t:Bifoldable">Bifoldable</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Semigroup-Traversable-Class.html#t:Bitraversable1">Bitraversable1</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Bifunctor-Apply.html#t:Biapply">Biapply</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Semigroup-Foldable-Class.html#t:Bifoldable1">Bifoldable1</a> <a href="Control-Lens-Getter.html#t:Const">Const</a></span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Foldable.html#t:Foldable">Foldable</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Generic1">Generic1</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> m =&gt; <a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Apply.html#t:Apply">Apply</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Sieve.html#t:Sieve">Sieve</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor.html#t:Forget">Forget</a> r) (<a href="Control-Lens-Getter.html#t:Const">Const</a> r)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Read.html#t:Read">Read</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Generic">Generic</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> a =&gt; <a href="file:///usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Wrapped.html#t:Wrapped">Wrapped</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a x)</span> <a href="src/Control-Lens-Wrapped.html#line-243" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(~) * t (<a href="Control-Lens-Getter.html#t:Const">Const</a> a' x') =&gt; <a href="Control-Lens-Wrapped.html#t:Rewrapped">Rewrapped</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a x) t</span> <a href="src/Control-Lens-Wrapped.html#line-242" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rep1">Rep1</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a) = <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:D1">D1</a> D1Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:C1">C1</a> C1_0Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:S1">S1</a> S1_0_0Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rec0">Rec0</a> a)))</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a b) = <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:D1">D1</a> D1Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:C1">C1</a> C1_0Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:S1">S1</a> S1_0_0Const (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rec0">Rec0</a> a)))</span></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="Control-Lens-Wrapped.html#t:Unwrapped">Unwrapped</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> a x) = a</span> <a href="src/Control-Lens-Wrapped.html#line-244" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>