/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 <ekmett@gmail.com></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 -> a)</code>, which we've flipped
into continuation passing style, <code>(a -> r) -> s -> 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 -> <code><a href="Control-Lens-Getter.html#t:Const">Const</a></code> r a) -> s -> <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) => (a -> f a) -> s -> 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) => (a -> f a) -> s -> 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) => p a (f a) -> s -> f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Getting">Getting</a> r s a = (a -> <a href="Control-Lens-Getter.html#t:Const">Const</a> r a) -> s -> <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) -> s -> <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) -> s -> <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) => (s -> a) -> <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) => (s -> (i, a)) -> <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) => a -> <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) => i -> a -> <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 -> <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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 => <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -> (a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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 => <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -> (a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> u w u -> m a -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> v w u -> (u -> v) -> m a -> m (a, v)</li><li class="src short"><a href="#v:-94--64-.">(^@.)</a> :: s -> <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> (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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -> (i -> a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -> (i -> a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, u) w u -> m a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i v w u -> (i -> u -> v) -> m a -> 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 -> b) -> f b -> f a</li><li><a href="#v:-62--36-">(>$)</a> :: b -> f b -> 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) => <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -> <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 :: * -> * -> * = <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) => (a -> f a) -> s -> 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 -> 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) => p a (f a) -> s -> 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 -> <a href="Control-Lens-Getter.html#t:Const">Const</a> r a) -> s -> <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 "do the right thing".</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) -> s -> <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) -> s -> <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) => (s -> a) -> <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 ≡ <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 ≡ f a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>a ^.to f
</code></strong>f a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>("hello","world")^.to snd
</code></strong>"world"
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>5^.to succ
</code></strong>6
</pre><pre class="screen"><code class="prompt">>>> </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 -> a) -> <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) => (s -> (i, a)) -> <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 -> (i, a)) -> <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) => a -> <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 ≡ <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 ≡ 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 ≡ 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 -> <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) => i -> a -> <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 -> a -> <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 -> <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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">>>> </code><strong class="userinput"><code>(a,b)^._2
</code></strong>b
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>("hello","world")^._2
</code></strong>"world"
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>import Data.Complex
</code></strong><code class="prompt">>>> </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 -> <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a -> 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 => s -> <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s m -> m
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) :: s -> <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a -> a
(<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>) :: s -> <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> 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 => s -> <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s m -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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> ≡ <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">>>> </code><strong class="userinput"><code>view (to f) a
</code></strong>f a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>view _2 (1,"hello")
</code></strong>"hello"
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>view (to succ) 5
</code></strong>6
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>view (_2._1) ("hello",("world","!!!"))
</code></strong>"world"
</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 -> s -> 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 => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s m -> s -> 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 -> s -> 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 -> s -> 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 => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s m -> s -> 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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a -> 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) => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a -> 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="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> 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) => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -> 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 => <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -> (a -> r) -> 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 ≡ <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">>>> </code><strong class="userinput"><code>views (to f) g a
</code></strong>g (f a)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>views _2 length (1,"hello")
</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 -> (a -> r) -> s -> 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 => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a -> (a -> m) -> s -> 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 -> (a -> r) -> s -> 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 -> (a -> r) -> s -> 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 => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -> (a -> m) -> s -> 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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a -> (a -> r) -> 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) => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a -> (a -> r) -> 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="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a -> (a -> r) -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> (a -> r) -> 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) => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -> (a -> r) -> 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 => <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s a -> (a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s a -> 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">>>> </code><strong class="userinput"><code>evalState (use _1) (a,b)
</code></strong>a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>evalState (use _1) ("hello","world")
</code></strong>"hello"
</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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a -> 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) => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s r -> 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 => <code><a href="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> 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) => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s r -> 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 => <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="Control-Lens-Getter.html#t:Const">Const</a> r) s a -> (a -> r) -> 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">>>> </code><strong class="userinput"><code>evalState (uses _1 length) ("hello","world")
</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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a -> (a -> r) -> 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) => <code><a href="Control-Lens-Fold.html#v:Fold">Fold</a></code> s a -> (a -> r) -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> (a -> r) -> 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="Control-Lens-Iso.html#v:Iso-39-">Iso'</a></code> s a -> (a -> r) -> 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) => <code><a href="Control-Lens-Traversal.html#v:Traversal-39-">Traversal'</a></code> s a -> (a -> r) -> 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 => <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> r s t a b -> (a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> u w u -> m a -> 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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> w u -> m a -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> w u -> m a -> 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="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> w u -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> w u -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> w u -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> w u -> m a -> 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 => <a href="Control-Lens-Getter.html#t:Getting">Getting</a> v w u -> (u -> v) -> m a -> 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 => <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> w u -> (u -> v) -> m a -> 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="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> w u -> (u -> v) -> m a -> 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="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> w u -> (u -> v) -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> w u -> (u -> v) -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> w u -> (u -> v) -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:Prism-39-">Prism'</a></code> w u -> (u -> v) -> m a -> 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 -> <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> (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 -> <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i s a -> (i, a)
(<code><a href="Control-Lens-Getter.html#v:-94--64-.">^@.</a></code>) :: s -> <code><a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> i s a -> (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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -> (i -> a -> r) -> 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> ≡ <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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, a) s a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i r s a -> (i -> a -> r) -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i (i, u) w u -> m a -> 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 => <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> i w u -> m a -> 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="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> i w u -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> i w u -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a></code> i w u -> m a -> 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 => <a href="Control-Lens-Getter.html#t:IndexedGetting">IndexedGetting</a> i v w u -> (i -> u -> v) -> m a -> 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 => <code><a href="Control-Lens-Getter.html#t:IndexedGetter">IndexedGetter</a></code> w u -> (i -> u -> v) -> m a -> 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="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a></code> w u -> (i -> u -> v) -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> w u -> (i -> u -> v) -> m a -> 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) => <code><a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a></code> w u -> (i -> u -> v) -> m a -> 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 -> b) -> f b -> f a</p><p class="src"><a name="v:-62--36-" class="def">(>$)</a> :: b -> f b -> 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"> </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"> </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"> </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> (<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"> </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"> </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"> </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> (<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"> </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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </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> (<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"> </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> (<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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </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"> </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> (<a href="Control-Lens-Internal-Indexed.html#t:Indexing64">Indexing64</a> f)</span></td><td class="doc empty"> </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> (<a href="Control-Lens-Internal-Indexed.html#t:Indexing">Indexing</a> f)</span></td><td class="doc empty"> </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"> </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) => <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"> </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) => <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"> </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) => <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"> </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> (<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"> </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) => <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"> </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) => <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"> </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) => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </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) => <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"> </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) => <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"> </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) => <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"> </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"> </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> (<a href="Control-Lens-Internal-Getter.html#t:AlongsideRight">AlongsideRight</a> f a)</span></td><td class="doc empty"> </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> (<a href="Control-Lens-Internal-Getter.html#t:AlongsideLeft">AlongsideLeft</a> f b)</span></td><td class="doc empty"> </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> (<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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> m => <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"> </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"> </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) => <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"> </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) => <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"> </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) => <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"> </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> (<a href="Control-Lens-Internal-Magma.html#t:TakingWhile">TakingWhile</a> p f a b)</span></td><td class="doc empty"> </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) => <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -> <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 :: * -> * -> *</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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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 => <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"> </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"> </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"> </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"> </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"> </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 => <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"> </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"> </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 => <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"> </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 => <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"> </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 => <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"> </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 => <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"> </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"> </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 => <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"> </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 => <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"> </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"> </td></tr><tr><td class="src clearfix"><span class="inst-left">(~) * t (<a href="Control-Lens-Getter.html#t:Const">Const</a> a' x') => <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"> </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"> </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"> </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"> </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>
|