Skip to content
This repository
Browse code

updated docs for donri

  • Loading branch information...
commit 239e84a94729d110e0525cf538ad72d352dd9fdb 1 parent 51615c3
Edward Kmett authored December 28, 2012

Showing 63 changed files with 1,382 additions and 1,402 deletions. Show diff stats Hide diff stats

  1. 78  Control-Exception-Lens.html
  2. 21  Control-Lens-At.html
  3. 10  Control-Lens-Combinators.html
  4. 50  Control-Lens-Fold.html
  5. 10  Control-Lens-Getter.html
  6. 25  Control-Lens-Indexed.html
  7. 46  Control-Lens-Internal.html
  8. 27  Control-Lens-Iso.html
  9. 57  Control-Lens-Lens.html
  10. 8  Control-Lens-Loupe.html
  11. 7  Control-Lens-Magma.html
  12. 150  Control-Lens-Operators.html
  13. 6  Control-Lens-Plated.html
  14. 10  Control-Lens-Prism.html
  15. 43  Control-Lens-Traversal.html
  16. 4  Control-Lens-Tuple.html
  17. 24  Control-Lens-Type.html
  18. 83  Control-Lens-Zipper-Internal.html
  19. 59  Control-Lens-Zipper.html
  20. 2  Control-Lens.html
  21. 4  System-IO-Error-Lens.html
  22. 2  doc-index-58.html
  23. 2  doc-index-60.html
  24. 2  doc-index-A.html
  25. 2  doc-index-All.html
  26. 2  doc-index-B.html
  27. 2  doc-index-C.html
  28. 2  doc-index-D.html
  29. 2  doc-index-F.html
  30. 2  doc-index-I.html
  31. 2  doc-index-L.html
  32. 2  doc-index-M.html
  33. 2  doc-index-N.html
  34. 2  doc-index-O.html
  35. 2  doc-index-P.html
  36. 2  doc-index-R.html
  37. 2  doc-index-S.html
  38. 2  doc-index-T.html
  39. 2  doc-index-V.html
  40. 2  doc-index-W.html
  41. 2  index-frames.html
  42. 4  index.html
  43. BIN  lens.haddock
  44. 2  mini_Control-Lens-At.html
  45. 2  mini_Control-Lens-Combinators.html
  46. 3  mini_Control-Lens-Fold.html
  47. 4  mini_Control-Lens-Indexed.html
  48. 7  mini_Control-Lens-Internal.html
  49. 3  mini_Control-Lens-Iso.html
  50. 5  mini_Control-Lens-Lens.html
  51. 4  mini_Control-Lens-Magma.html
  52. 6  mini_Control-Lens-Operators.html
  53. 2  mini_Control-Lens-Prism.html
  54. 8  mini_Control-Lens-Traversal.html
  55. 3  mini_Control-Lens-Type.html
  56. 9  mini_Control-Lens-Zipper-Internal.html
  57. 4  mini_Control-Lens-Zipper.html
  58. 1,575  src/Control-Exception-Lens.html
  59. 122  src/Control-Lens-Action.html
  60. 100  src/Control-Lens-At.html
  61. 127  src/Control-Lens-Combinators.html
  62. 30  src/Control-Lens-Equality.html
78  Control-Exception-Lens.html
36 additions, 42 deletions not shown
21  Control-Lens-At.html
@@ -4,28 +4,27 @@
4 4
 </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-At.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-3.8: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.At</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Lens
5 5
 </a></li><li><a href="#g:2">Indexed Traversal
6 6
 </a></li><li><a href="#g:3">Deprecated
7  
-</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span>  <a href="#t:At">At</a> m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:at">at</a> :: IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> (IxKey m) m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (IxValue m))</li></ul></li><li class="src short"><a href="#v:ixAt">ixAt</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)</li><li class="src short"><a href="#v:ixEach">ixEach</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (IxKey m), <a href="Control-Lens-Each.html#t:Each">Each</a> (IxKey m) f m m (IxValue m) (IxValue m)) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Ixed">Ixed</a> f m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:ix">ix</a> :: <a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)</li></ul></li><li class="src short"><a href="#v:contains">contains</a>, <a href="#v:resultAt">resultAt</a>, <a href="#v:_at">_at</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f m) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)</li></ul></div><div id="interface"><h1 id="g:1">Indexed Lens
  7
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span>  <a href="#t:At">At</a> m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:at">at</a> :: <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m))</li></ul></li><li class="src short"><a href="#v:ixAt">ixAt</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li><li class="src short"><a href="#v:ixEach">ixEach</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m), <a href="Control-Lens-Each.html#t:Each">Each</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) f m m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m) (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Ixed">Ixed</a> f m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:ix">ix</a> :: <a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li></ul></li><li class="src short"><span class="keyword">type family</span> <a href="#t:IxKey">IxKey</a> m :: *</li><li class="src short"><span class="keyword">type family</span> <a href="#t:IxValue">IxValue</a> m :: *</li><li class="src short"><a href="#v:contains">contains</a>, <a href="#v:resultAt">resultAt</a>, <a href="#v:_at">_at</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f m) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li></ul></div><div id="interface"><h1 id="g:1">Indexed Lens
8 8
 </h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:At" class="def">At</a> m  <span class="keyword">where</span><a href="src/Control-Lens-At.html#At" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-At.html#t:At">At</a></code> provides a lens that can be used to read,
9 9
  write or delete the value associated with a key in a map-like
10 10
  container on an ad hoc basis.
11 11
 </p><p>An instance of <code>At</code> should satisfy:
12  
-</p><pre><code>el</code> k &#8801; <code><a href="Control-Lens-At.html#v:at">at</a></code> k <code><a href="Control-Lens-Indexed.html#v:-60-.">&lt;.</a></code> <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code></pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:at" class="def">at</a> :: IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> (IxKey m) m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (IxValue m))<a href="src/Control-Lens-At.html#at" class="link">Source</a></p><div class="doc"><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(1,&quot;world&quot;)] ^.at 1
  12
+</p><pre><code><a href="Control-Lens-At.html#v:ix">ix</a></code> k &#8801; <code><a href="Control-Lens-At.html#v:at">at</a></code> k <code><a href="Control-Lens-Indexed.html#v:-60-.">&lt;.</a></code> <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code></pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:at" class="def">at</a> :: <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m))<a href="src/Control-Lens-At.html#at" class="link">Source</a></p><div class="doc"><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(1,&quot;world&quot;)] ^.at 1
13 13
 </code></strong>Just &quot;world&quot;
14 14
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>at 1 ?~ &quot;hello&quot; $ Map.empty
15 15
 </code></strong>fromList [(1,&quot;hello&quot;)]
16 16
 </pre><p><em>Note:</em> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a></code>-like containers form a reasonable instance, but not <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/array-0.4.0.0/Data-Array.html#t:Array">Array</a></code>-like ones, where
17 17
  you cannot satisfy the <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> laws.
18  
-</p></div></div><div class="subs instances"><p id="control.i:At" class="caption collapser" onclick="toggleSection('i:At')">Instances</p><div id="section.i:At" class="show"><table><tr><td class="src"><a href="Control-Lens-At.html#t:At">At</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> k =&gt; <a href="Control-Lens-At.html#t:At">At</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-At.html#t:At">At</a> (HashMap k a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ixAt" class="def">ixAt</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)<a href="src/Control-Lens-At.html#ixAt" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-At.html#t:At">At</a></code> instance. This is the default
  18
+</p></div></div><div class="subs instances"><p id="control.i:At" class="caption collapser" onclick="toggleSection('i:At')">Instances</p><div id="section.i:At" class="show"><table><tr><td class="src"><a href="Control-Lens-At.html#t:At">At</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> k =&gt; <a href="Control-Lens-At.html#t:At">At</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-At.html#t:At">At</a> (HashMap k a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ixAt" class="def">ixAt</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#ixAt" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-At.html#t:At">At</a></code> instance. This is the default
19 19
  if you don't specify a definition for <code><a href="Control-Lens-At.html#v:ix">ix</a></code>.
20  
-</p></div></div><div class="top"><p class="src"><a name="v:ixEach" class="def">ixEach</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (IxKey m), <a href="Control-Lens-Each.html#t:Each">Each</a> (IxKey m) f m m (IxValue m) (IxValue m)) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)<a href="src/Control-Lens-At.html#ixEach" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-Each.html#t:Each">Each</a></code> instance.
  20
+</p></div></div><div class="top"><p class="src"><a name="v:ixEach" class="def">ixEach</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m), <a href="Control-Lens-Each.html#t:Each">Each</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) f m m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m) (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#ixEach" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-Each.html#t:Each">Each</a></code> instance.
21 21
 </p></div></div><h1 id="g:2">Indexed Traversal
22 22
 </h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Ixed" class="def">Ixed</a> f m  <span class="keyword">where</span><a href="src/Control-Lens-At.html#Ixed" class="link">Source</a></p><div class="doc"><p>This simple indexed traversal lets you <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code> the value at a given key in a map or element at an ordinal
23 23
  position in a list or sequence.
24  
-</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ix" class="def">ix</a> :: <a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)<a href="src/Control-Lens-At.html#ix" class="link">Source</a></p><div class="doc"><p>What is the index type?
25  
- | This simple indexed traversal lets you <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code> the value at a given key in a map.
26  
-</p><ul><li>NB:* _setting_ the value of this <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> will only set the value in the lens
27  
- if it is already present.
28  
-</li></ul><p>If you want to be able to insert <em>missing</em> values, you want <code><a href="Control-Lens-At.html#v:at">at</a></code>.
  24
+</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ix" class="def">ix</a> :: <a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#ix" class="link">Source</a></p><div class="doc"><p>This simple indexed traversal lets you <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code> the value at a given key in a map.
  25
+</p><p><em>NB:</em> Setting the value of this <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> will only set the value in the
  26
+ lens if it is already present.
  27
+</p><p>If you want to be able to insert <em>missing</em> values, you want <code><a href="Control-Lens-At.html#v:at">at</a></code>.
29 28
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Seq.fromList [a,b,c,d] &amp; ix 2 %~ f
30 29
 </code></strong>fromList [a,b,f c,d]
31 30
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Seq.fromList [a,b,c,d] &amp; ix 2 .~ e
@@ -44,6 +43,6 @@
44 43
 </pre></td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ix.html#t:Ix">Ix</a> i) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/array-0.4.0.0/Data-Array.html#t:Array">Array</a> i e)</td><td class="doc"><pre>
45 44
  arr <code>!</code> i &#8801; arr <code>^.</code> <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i
46 45
  arr <code>//</code> [(i,e)] &#8801; <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i <code>.~</code> e <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:-36-">$</a></code> arr
47  
-</pre></td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (HashMap k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> k) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f') =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f')</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g, ~ * g h) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g, h)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g, ~ * g h, ~ * h i) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g, h, i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:3">Deprecated
48  
-</h1><div class="top"><p class="src"><a name="v:contains" class="def">contains</a>, <a name="v:resultAt" class="def">resultAt</a>, <a name="v:_at" class="def">_at</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (IxKey m) p, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f m) =&gt; IxKey m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (IxValue m)<a href="src/Control-Lens-At.html#contains" class="link">Source</a></p><div class="doc"><p>A deprecated alias for <code><a href="Control-Lens-At.html#v:ix">ix</a></code>
  46
+</pre></td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (HashMap k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> k) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f') =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f')</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g, ~ * g h) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g, h)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, ~ * a b, ~ * b c, ~ * c d, ~ * d e, ~ * e f', ~ * f' g, ~ * g h, ~ * h i) =&gt; <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f (a, b, c, d, e, f', g, h, i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:IxKey" class="def">IxKey</a> m :: *<a href="src/Control-Lens-At.html#IxKey" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:IxValue" class="def">IxValue</a> m :: *<a href="src/Control-Lens-At.html#IxValue" class="link">Source</a></p></div><h1 id="g:3">Deprecated
  47
+</h1><div class="top"><p class="src"><a name="v:contains" class="def">contains</a>, <a name="v:resultAt" class="def">resultAt</a>, <a name="v:_at" class="def">_at</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> (<a href="Control-Lens-At.html#t:IxKey">IxKey</a> m) p, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> f m) =&gt; <a href="Control-Lens-At.html#t:IxKey">IxKey</a> m -&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike-39-">IndexedLensLike'</a> p f m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#contains" class="link">Source</a></p><div class="doc"><p>A deprecated alias for <code><a href="Control-Lens-At.html#v:ix">ix</a></code>
49 48
 </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
10  Control-Lens-Combinators.html
@@ -2,7 +2,7 @@
2 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Combinators.html");};
3 3
 //]]>
4 4
 </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Combinators.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-3.8: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Combinators</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>These are general purpose combinators that provide utility for non-lens code
5  
-</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:-38-">(&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b</li><li class="src short"><a href="#v:-60--38--62-">(&lt;&amp;&gt;)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f a -&gt; (a -&gt; b) -&gt; f b</li><li class="src short"><a href="#v:-60--36--33--62-">(&lt;$!&gt;)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; b) -&gt; m a -&gt; m b</li><li class="src short"><a href="#v:-60--36--33-">(&lt;$!)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; b -&gt; m a -&gt; m b</li><li class="src short"><a href="#v:-63--63-">(??)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f (a -&gt; b) -&gt; a -&gt; f b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:-38-" class="def">(&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b<a href="src/Control-Lens-Combinators.html#%26" class="link">Source</a></p><div class="doc"><p>Passes the result of the left side to the function on the right side (forward pipe operator).
  5
+</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:-38-">(&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b</li><li class="src short"><a href="#v:-60--38--62-">(&lt;&amp;&gt;)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f a -&gt; (a -&gt; b) -&gt; f b</li><li class="src short"><a href="#v:-63--63-">(??)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f (a -&gt; b) -&gt; a -&gt; f b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:-38-" class="def">(&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b<a href="src/Control-Lens-Combinators.html#%26" class="link">Source</a></p><div class="doc"><p>Passes the result of the left side to the function on the right side (forward pipe operator).
6 6
 </p><p>This is the flipped version of (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:-36-">$</a></code>), which is more common in languages like F# as (<code>|&gt;</code>) where it is needed
7 7
  for inference. Here it is supplied for notational convenience and given a precedence that allows it
8 8
  to be nested inside uses of (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:-36-">$</a></code>).
@@ -17,13 +17,7 @@
17 17
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>flip execState (&quot;hello&quot;,&quot;world&quot;) $ do _1.element 0 .= 'j'; _1.element 4 .= 'y'
18 18
 </code></strong>(&quot;jelly&quot;,&quot;world&quot;)
19 19
 </pre></div></div><div class="top"><p class="src"><a name="v:-60--38--62-" class="def">(&lt;&amp;&gt;)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f a -&gt; (a -&gt; b) -&gt; f b<a href="src/Control-Lens-Combinators.html#%3C%26%3E" class="link">Source</a></p><div class="doc"><p>Infix flipped fmap.
20  
-</p><pre>(<code><a href="Control-Lens-Combinators.html#v:-60--38--62-">&lt;&amp;&gt;</a></code>) = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:flip">flip</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code></pre></div></div><div class="top"><p class="src"><a name="v:-60--36--33--62-" class="def">(&lt;$!&gt;)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; b) -&gt; m a -&gt; m b<a href="src/Control-Lens-Combinators.html#%3C%24%21%3E" class="link">Source</a></p><div class="doc"><p>A strict version of (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Functor.html#v:-60--36--62-">&lt;$&gt;</a></code>) for monads.
21  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(+1) &lt;$!&gt; [1,2,3,4]
22  
-</code></strong>[2,3,4,5]
23  
-</pre></div></div><div class="top"><p class="src"><a name="v:-60--36--33-" class="def">(&lt;$!)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; b -&gt; m a -&gt; m b<a href="src/Control-Lens-Combinators.html#%3C%24%21" class="link">Source</a></p><div class="doc"><p>A strict version of (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Functor.html#v:-60--36-">&lt;$</a></code>) for monads.
24  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>() &lt;$! [1,2,3,4]
25  
-</code></strong>[(),(),(),()]
26  
-</pre></div></div><div class="top"><p class="src"><a name="v:-63--63-" class="def">(??)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f (a -&gt; b) -&gt; a -&gt; f b<a href="src/Control-Lens-Combinators.html#%3F%3F" class="link">Source</a></p><div class="doc"><p>This is convenient to <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:flip">flip</a></code> argument order of composite functions
  20
+</p><pre>(<code><a href="Control-Lens-Combinators.html#v:-60--38--62-">&lt;&amp;&gt;</a></code>) = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:flip">flip</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code></pre></div></div><div class="top"><p class="src"><a name="v:-63--63-" class="def">(??)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; f (a -&gt; b) -&gt; a -&gt; f b<a href="src/Control-Lens-Combinators.html#%3F%3F" class="link">Source</a></p><div class="doc"><p>This is convenient to <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:flip">flip</a></code> argument order of composite functions
27 21
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>over _2 ?? (&quot;hello&quot;,&quot;world&quot;) $ length
28 22
 </code></strong>(&quot;hello&quot;,5)
29 23
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>over ?? length ?? (&quot;hello&quot;,&quot;world&quot;) $ _2
50  Control-Lens-Fold.html
17 additions, 33 deletions not shown
10  Control-Lens-Getter.html
@@ -20,7 +20,7 @@
20 20
  in the opposite order.
21 21
 </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
22 22
  single value for a given input.
23  
-</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:Gettable">Gettable</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</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 t a b = (a -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedGetting">IndexedGetting</a> i m s t a b = <a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m t</li><li class="src short"><a href="#v:to">to</a> ::  (s -&gt; a) -&gt; <a href="Control-Lens-Getter.html#t:Getter">Getter</a> 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 t a b -&gt; a</li><li class="src short"><a href="#v:view">view</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m a</li><li class="src short"><a href="#v:views">views</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:view-39-">view'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 s a a -&gt; m a</li><li class="src short"><a href="#v:views-39-">views'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s s a a -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:use">use</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m a</li><li class="src short"><a href="#v:uses">uses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:use-39-">use'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 s a a -&gt; m a</li><li class="src short"><a href="#v:uses-39-">uses'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s s a a -&gt; (a -&gt; r) -&gt; m r</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 t a b -&gt; (i, a)</li><li class="src short"><a href="#v:iview">iview</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m (i, a)</li><li class="src short"><a href="#v:iviews">iviews</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:iuse">iuse</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m (i, a)</li><li class="src short"><a href="#v:iuses">iuses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Gettable">Gettable</a> f </li><li class="src short"><span class="keyword">data</span>  <a href="#t:Accessor">Accessor</a> r a</li></ul></div><div id="interface"><h1 id="g:1">Getters
  23
+</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:Gettable">Gettable</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</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 t a b = (a -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedGetting">IndexedGetting</a> i m s t a b = <a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m t</li><li class="src short"><a href="#v:to">to</a> ::  (s -&gt; a) -&gt; <a href="Control-Lens-Type.html#t:IndexPreservingGetter">IndexPreservingGetter</a> 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 t a b -&gt; a</li><li class="src short"><a href="#v:view">view</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m a</li><li class="src short"><a href="#v:views">views</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:view-39-">view'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 s a a -&gt; m a</li><li class="src short"><a href="#v:views-39-">views'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s s a a -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:use">use</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m a</li><li class="src short"><a href="#v:uses">uses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:use-39-">use'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 s a a -&gt; m a</li><li class="src short"><a href="#v:uses-39-">uses'</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s s a a -&gt; (a -&gt; r) -&gt; m r</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 t a b -&gt; (i, a)</li><li class="src short"><a href="#v:iview">iview</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m (i, a)</li><li class="src short"><a href="#v:iviews">iviews</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:iuse">iuse</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; m (i, a)</li><li class="src short"><a href="#v:iuses">iuses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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 t a b -&gt; (i -&gt; a -&gt; r) -&gt; m r</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Gettable">Gettable</a> f </li><li class="src short"><span class="keyword">data</span>  <a href="#t:Accessor">Accessor</a> r a</li></ul></div><div id="interface"><h1 id="g:1">Getters
24 24
 </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:Gettable">Gettable</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
25 25
  composed with other lens-like constructions.
26 26
 </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>
@@ -28,7 +28,7 @@
28 28
  it. In fact, it is isomorphic to an arbitrary function from <code>(a -&gt; s)</code>.
29 29
 </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#t:Fold">Fold</a></code>,
30 30
  since it just ignores the <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code>.
31  
-</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</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#t:IndexedFold">IndexedFold</a></code> and <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>.
  31
+</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</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#t:IndexedFold">IndexedFold</a></code> and can be used for <code>Getting</code> like a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>.
32 32
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Getting" class="def">Getting</a> r s t a b = (a -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r t<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
33 33
  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>,
34 34
  <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>,
@@ -46,7 +46,7 @@
46 46
  <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>.
47 47
 </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 t a b = <a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m b) -&gt; s -&gt; <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> m t<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#t:IndexedFold">IndexedFold</a></code>.
48 48
 </p></div></div><h1 id="g:2">Building Getters
49  
-</h1><div class="top"><p class="src"><a name="v:to" class="def">to</a> ::  (s -&gt; a) -&gt; <a href="Control-Lens-Getter.html#t:Getter">Getter</a> s a<a href="src/Control-Lens-Getter.html#to" class="link">Source</a></p><div class="doc"><p>Build a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> from an arbitrary Haskell function.
  49
+</h1><div class="top"><p class="src"><a name="v:to" class="def">to</a> ::  (s -&gt; a) -&gt; <a href="Control-Lens-Type.html#t:IndexPreservingGetter">IndexPreservingGetter</a> s a<a href="src/Control-Lens-Getter.html#to" class="link">Source</a></p><div class="doc"><p>Build a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> from an arbitrary Haskell function.
50 50
 </p><pre><code><a href="Control-Lens-Getter.html#v:to">to</a></code> f . <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 . 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
51 51
 </code></strong>f a
52 52
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(&quot;hello&quot;,&quot;world&quot;)^.to snd
@@ -264,8 +264,8 @@
264 264
 </p><p>A <code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> ignores its argument, which it carries solely as a
265 265
  phantom type parameter.
266 266
 </p><p>To ensure this, an instance of <code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> is required to satisfy:
267  
-</p><pre><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code> = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> f = <code><a href="Control-Lens-Internal.html#v:coerce">coerce</a></code></pre><p>Which is equivalent to making a <code><code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> f</code> an &quot;anyvariant&quot; functor.
268  
-</p></div><div class="subs instances"><p id="control.i:Gettable" class="caption collapser" onclick="toggleSection('i:Gettable')">Instances</p><div id="section.i:Gettable" class="show"><table><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Const">Const</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:BazaarT">BazaarT</a> a b g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:EffectRWS">EffectRWS</a> w st m s)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Accessor" class="def">Accessor</a> r a <a href="src/Control-Lens-Internal.html#Accessor" class="link">Source</a></p><div class="doc"><p>Used instead of <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Const">Const</a></code> to report
  267
+</p><pre><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code> = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> f = <code><a href="Control-Lens-Internal.html#v:coerce">coerce</a></code></pre><p>Which is equivalent to making a <code><code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> f</code> an &quot;anyvariant&quot; functor.
  268
+</p></div><div class="subs instances"><p id="control.i:Gettable" class="caption collapser" onclick="toggleSection('i:Gettable')">Instances</p><div id="section.i:Gettable" class="show"><table><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Const">Const</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:BazaarT">BazaarT</a> p g a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.html#t:EffectRWS">EffectRWS</a> w st m s)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Accessor" class="def">Accessor</a> r a <a href="src/Control-Lens-Internal.html#Accessor" class="link">Source</a></p><div class="doc"><p>Used instead of <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Const">Const</a></code> to report
269 269
 </p><pre>No instance of (<code><a href="Control-Lens-Internal.html#t:Settable">Settable</a></code> <code><a href="Control-Lens-Getter.html#t:Accessor">Accessor</a></code>)</pre><p>when the user attempts to misuse a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> as a
270 270
  <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>, rather than a monolithic unification error.
271 271
 </p></div><div class="subs instances"><p id="control.i:Accessor" class="caption collapser" onclick="toggleSection('i:Accessor')">Instances</p><div id="section.i:Accessor" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal.html#t:Effective">Effective</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a> r (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> r (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> r =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Zoom.html#t:Magnify">Magnify</a> ((-&gt;) b) ((-&gt;) a) <a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> b a</td><td class="doc"><pre><code><a href="Control-Lens-Zoom.html#v:magnify">magnify</a></code> = <code><a href="Control-Lens-Getter.html#v:views">views</a></code></pre></td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r a) r</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.10.0</p></div></body></html>
25  Control-Lens-Indexed.html
@@ -9,8 +9,8 @@
9 9
 </a></li><li><a href="#g:6">Indexed Traversables
10 10
 </a></li><li><a href="#g:7">Indexed Traversable Combinators
11 11
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>(These need to be defined together for <code>DefaultSignatures</code> to work.)
12  
-</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">class</span> <a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p =&gt; <a href="#t:Indexable">Indexable</a> i p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:indexed">indexed</a> ::  p a b -&gt; i -&gt; a -&gt; b</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Indexed">Indexed</a> i a b = <a href="#v:Indexed">Indexed</a> {<ul class="subs"><li><a href="#v:runIndexed">runIndexed</a> :: i -&gt; a -&gt; b</li></ul>}</li><li class="src short"><a href="#v:withIndex">withIndex</a> ::  (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (i -&gt; s -&gt; t) -&gt; r</li><li class="src short"><a href="#v:-60-.">(&lt;.)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; ((a -&gt; b) -&gt; s -&gt; t) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:-60-.-62-">(&lt;.&gt;)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> (i, j) p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j a b -&gt; s -&gt; t) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:.-62-">(.&gt;)</a> ::  (st -&gt; r) -&gt; (kab -&gt; st) -&gt; kab -&gt; r</li><li class="src short"><a href="#v:reindexed">reindexed</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> j p =&gt; (i -&gt; j) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a b -&gt; r) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:icompose">icompose</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> p c =&gt; (i -&gt; j -&gt; p) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j a b -&gt; s -&gt; t) -&gt; c a b -&gt; r</li><li class="src short"><a href="#v:indexing">indexing</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> p =&gt; ((a -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f b) -&gt; s -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f t) -&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:indexing64">indexing64</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int64">Int64</a> p =&gt; ((a -&gt; <a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f b) -&gt; s -&gt; <a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f t) -&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:FunctorWithIndex">FunctorWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:imap">imap</a> ::  (i -&gt; a -&gt; b) -&gt; f a -&gt; f b</li></ul></li><li class="src short"><a href="#v:imapped">imapped</a> :: <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i (f a) (f b) a b</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f =&gt; <a href="#t:FoldableWithIndex">FoldableWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:ifoldMap">ifoldMap</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; (i -&gt; a -&gt; m) -&gt; f a -&gt; m</li><li><a href="#v:ifoldr">ifoldr</a> ::  (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldl">ifoldl</a> ::  (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldr-39-">ifoldr'</a> ::  (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldl-39-">ifoldl'</a> ::  (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; f a -&gt; b</li></ul></li><li class="src short"><a href="#v:ifolded">ifolded</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i (f a) a</li><li class="src short"><a href="#v:ifolding">ifolding</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i s a</li><li class="src short"><a href="#v:iany">iany</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:iall">iall</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:itraverse_">itraverse_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; (i -&gt; a -&gt; f b) -&gt; t a -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:ifor_">ifor_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; t a -&gt; (i -&gt; a -&gt; f b) -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:imapM_">imapM_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; m b) -&gt; t a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforM_">iforM_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; t a -&gt; (i -&gt; a -&gt; m b) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iconcatMap">iconcatMap</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; [b]) -&gt; f a -&gt; [b]</li><li class="src short"><a href="#v:ifind">ifind</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (i, a)</li><li class="src short"><a href="#v:ifoldrM">ifoldrM</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; b -&gt; m b) -&gt; b -&gt; f a -&gt; m b</li><li class="src short"><a href="#v:ifoldlM">ifoldlM</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; b -&gt; a -&gt; m b) -&gt; b -&gt; f a -&gt; m b</li><li class="src short"><a href="#v:itoList">itoList</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; f a -&gt; [(i, a)]</li><li class="src short"><a href="#v:withIndices">withIndices</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:Fold">Fold</a> (f a) (i, a)</li><li class="src short"><a href="#v:indices">indices</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:Fold">Fold</a> (f a) i</li><li class="src short"><span class="keyword">class</span> (<a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i t, <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> t) =&gt; <a href="#t:TraversableWithIndex">TraversableWithIndex</a> i t | t -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:itraverse">itraverse</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (i -&gt; a -&gt; f b) -&gt; t a -&gt; f (t b)</li></ul></li><li class="src short"><a href="#v:itraversed">itraversed</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i (f a) (f b) a b</li><li class="src short"><a href="#v:ifor">ifor</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; t a -&gt; (i -&gt; a -&gt; f b) -&gt; f (t b)</li><li class="src short"><a href="#v:imapM">imapM</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; m b) -&gt; t a -&gt; m (t b)</li><li class="src short"><a href="#v:iforM">iforM</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; t a -&gt; (i -&gt; a -&gt; m b) -&gt; m (t b)</li><li class="src short"><a href="#v:imapAccumR">imapAccumR</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; t a -&gt; (s, t b)</li><li class="src short"><a href="#v:imapAccumL">imapAccumL</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; t a -&gt; (s, t b)</li><li class="src short"><a href="#v:iwhere">iwhere</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a> i (t a) a</li></ul></div><div id="interface"><h1 id="g:1">Indexing
13  
-</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p =&gt; <a name="t:Indexable" class="def">Indexable</a> i p  <span class="keyword">where</span><a href="src/Control-Lens-Internal.html#Indexable" class="link">Source</a></p><div class="doc"><p>This class permits overloading of function application for things that
  12
+</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">class</span> SelfAdjoint p =&gt; <a href="#t:Indexable">Indexable</a> i p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:indexed">indexed</a> ::  p a b -&gt; i -&gt; a -&gt; b</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Indexed">Indexed</a> i a b = <a href="#v:Indexed">Indexed</a> {<ul class="subs"><li><a href="#v:runIndexed">runIndexed</a> :: i -&gt; a -&gt; b</li></ul>}</li><li class="src short"><a href="#v:-60-.">(&lt;.)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; ((a -&gt; b) -&gt; s -&gt; t) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:-60-.-62-">(&lt;.&gt;)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> (i, j) p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j a b -&gt; s -&gt; t) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:.-62-">(.&gt;)</a> ::  (st -&gt; r) -&gt; (kab -&gt; st) -&gt; kab -&gt; r</li><li class="src short"><a href="#v:reindexed">reindexed</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> j p =&gt; (i -&gt; j) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a b -&gt; r) -&gt; p a b -&gt; r</li><li class="src short"><a href="#v:icompose">icompose</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> p c =&gt; (i -&gt; j -&gt; p) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j a b -&gt; s -&gt; t) -&gt; c a b -&gt; r</li><li class="src short"><a href="#v:indexing">indexing</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> p =&gt; ((a -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f b) -&gt; s -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f t) -&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:indexing64">indexing64</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int64">Int64</a> p =&gt; ((a -&gt; <a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f b) -&gt; s -&gt; <a href="Control-Lens-Internal.html#t:Indexing64">Indexing64</a> f t) -&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:FunctorWithIndex">FunctorWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:imap">imap</a> ::  (i -&gt; a -&gt; b) -&gt; f a -&gt; f b</li></ul></li><li class="src short"><a href="#v:imapped">imapped</a> :: <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i (f a) (f b) a b</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f =&gt; <a href="#t:FoldableWithIndex">FoldableWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:ifoldMap">ifoldMap</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; (i -&gt; a -&gt; m) -&gt; f a -&gt; m</li><li><a href="#v:ifoldr">ifoldr</a> ::  (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldl">ifoldl</a> ::  (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldr-39-">ifoldr'</a> ::  (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li><a href="#v:ifoldl-39-">ifoldl'</a> ::  (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; f a -&gt; b</li></ul></li><li class="src short"><a href="#v:ifolded">ifolded</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i (f a) a</li><li class="src short"><a href="#v:ifolding">ifolding</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i s a</li><li class="src short"><a href="#v:iany">iany</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:iall">iall</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:itraverse_">itraverse_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; (i -&gt; a -&gt; f b) -&gt; t a -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:ifor_">ifor_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; t a -&gt; (i -&gt; a -&gt; f b) -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:imapM_">imapM_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; m b) -&gt; t a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforM_">iforM_</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; t a -&gt; (i -&gt; a -&gt; m b) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iconcatMap">iconcatMap</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; [b]) -&gt; f a -&gt; [b]</li><li class="src short"><a href="#v:ifind">ifind</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (i -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; f a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (i, a)</li><li class="src short"><a href="#v:ifoldrM">ifoldrM</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; b -&gt; m b) -&gt; b -&gt; f a -&gt; m b</li><li class="src short"><a href="#v:ifoldlM">ifoldlM</a> :: (<a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; b -&gt; a -&gt; m b) -&gt; b -&gt; f a -&gt; m b</li><li class="src short"><a href="#v:itoList">itoList</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; f a -&gt; [(i, a)]</li><li class="src short"><a href="#v:withIndex">withIndex</a> :: (<a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> p (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i) f s t (i, s) (j, t)</li><li class="src short"><a href="#v:index">index</a> :: (<a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; <a href="Control-Lens-Type.html#t:Overloading-39-">Overloading'</a> p (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i) f s i</li><li class="src short"><span class="keyword">class</span> (<a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i t, <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> t) =&gt; <a href="#t:TraversableWithIndex">TraversableWithIndex</a> i t | t -&gt; i <span class="keyword">where</span><ul class="subs"><li><a href="#v:itraverse">itraverse</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (i -&gt; a -&gt; f b) -&gt; t a -&gt; f (t b)</li></ul></li><li class="src short"><a href="#v:itraversed">itraversed</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i (f a) (f b) a b</li><li class="src short"><a href="#v:ifor">ifor</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; t a -&gt; (i -&gt; a -&gt; f b) -&gt; f (t b)</li><li class="src short"><a href="#v:imapM">imapM</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (i -&gt; a -&gt; m b) -&gt; t a -&gt; m (t b)</li><li class="src short"><a href="#v:iforM">iforM</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; t a -&gt; (i -&gt; a -&gt; m b) -&gt; m (t b)</li><li class="src short"><a href="#v:imapAccumR">imapAccumR</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; t a -&gt; (s, t b)</li><li class="src short"><a href="#v:imapAccumL">imapAccumL</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; t a -&gt; (s, t b)</li><li class="src short"><a href="#v:iwhere">iwhere</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t =&gt; (i -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a> i (t a) a</li></ul></div><div id="interface"><h1 id="g:1">Indexing
  13
+</h1><div class="top"><p class="src"><span class="keyword">class</span> SelfAdjoint p =&gt; <a name="t:Indexable" class="def">Indexable</a> i p  <span class="keyword">where</span><a href="src/Control-Lens-Internal.html#Indexable" class="link">Source</a></p><div class="doc"><p>This class permits overloading of function application for things that
14 14
  also admit a notion of a key or index.
15 15
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:indexed" class="def">indexed</a> ::  p a b -&gt; i -&gt; a -&gt; b<a href="src/Control-Lens-Internal.html#indexed" class="link">Source</a></p><div class="doc"><p>Build a function from an <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> function
16 16
 </p></div></div><div class="subs instances"><p id="control.i:Indexable" class="caption collapser" onclick="toggleSection('i:Indexable')">Instances</p><div id="section.i:Indexable" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i (-&gt;)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * i j =&gt; <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j)</td><td class="doc"><p>Using an equality witness to avoid potential overlapping instances
@@ -19,7 +19,7 @@
19 19
  an <code><a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a></code> in a container to avoid <code>ImpredicativeTypes</code>.
20 20
 </p><pre>index :: Indexed i a b -&gt; i -&gt; a -&gt; b</pre></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Indexed" class="def">Indexed</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:runIndexed" class="def">runIndexed</a> :: i -&gt; a -&gt; b</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:Indexed" class="caption collapser" onclick="toggleSection('i:Indexed')">Instances</p><div id="section.i:Indexed" class="show"><table><tr><td class="src">~ * i j =&gt; <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j)</td><td class="doc"><p>Using an equality witness to avoid potential overlapping instances
21 21
  and aid dispatch.
22  
-</p></td></tr><tr><td class="src"><a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> (i -&gt; s -&gt; t) (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t) (i -&gt; s -&gt; t)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:withIndex" class="def">withIndex</a> ::  (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (i -&gt; s -&gt; t) -&gt; r<a href="src/Control-Lens-Indexed.html#withIndex" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:-60-." class="def">(&lt;.)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; ((a -&gt; b) -&gt; s -&gt; t) -&gt; p a b -&gt; r<a href="src/Control-Lens-Indexed.html#%3C." class="link">Source</a></p><div class="doc"><p>Compose an <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> function with a non-indexed function.
  22
+</p></td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:Arrow">Arrow</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:ArrowChoice">ArrowChoice</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:ArrowApply">ArrowApply</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:ArrowLoop">ArrowLoop</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Lenticular">Lenticular</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">RepresentableProfunctor (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">CorepresentableProfunctor (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">SelfAdjoint (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> (i -&gt; s -&gt; t) (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:NewtypeComposition">NewtypeComposition</a> (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t) (i -&gt; s -&gt; t)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:-60-." class="def">(&lt;.)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; ((a -&gt; b) -&gt; s -&gt; t) -&gt; p a b -&gt; r<a href="src/Control-Lens-Indexed.html#%3C." class="link">Source</a></p><div class="doc"><p>Compose an <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> function with a non-indexed function.
23 23
 </p><p>Mnemonically, the <code>&lt;</code> points to the indexing we want to preserve.
24 24
 </p></div></div><div class="top"><p class="src"><a name="v:-60-.-62-" class="def">(&lt;.&gt;)</a> :: <a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> (i, j) p =&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i s t -&gt; r) -&gt; (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j a b -&gt; s -&gt; t) -&gt; p a b -&gt; r<a href="src/Control-Lens-Indexed.html#%3C.%3E" class="link">Source</a></p><div class="doc"><p>Composition of <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> functions
25 25
 </p><p>Mnemonically, the <code>&lt;</code> and <code>&gt;</code> points to the fact that we want to preserve the indices.
@@ -51,12 +51,12 @@
51 51
 </h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a name="t:FunctorWithIndex" class="def">FunctorWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><a href="src/Control-Lens-Indexed.html#FunctorWithIndex" class="link">Source</a></p><div class="doc"><p>A <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> with an additional index.
52 52
 </p><p>Instances must satisfy a modified form of the <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> laws:
53 53
 </p><pre>
54  
- <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> g &#8801; <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> (i -&gt; f i . g i)
55  
- <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> (_ a -&gt; a) &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>
  54
+ <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> g &#8801; <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> (\i -&gt; f i . g i)
  55
+ <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code> (\_ a -&gt; a) &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>
56 56
 </pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:imap" class="def">imap</a> ::  (i -&gt; a -&gt; b) -&gt; f a -&gt; f b<a href="src/Control-Lens-Indexed.html#imap" class="link">Source</a></p><div class="doc"><p>Map with access to the index.
57 57
 </p></div></div><div class="subs instances"><p id="control.i:FunctorWithIndex" class="caption collapser" onclick="toggleSection('i:FunctorWithIndex')">Instances</p><div id="section.i:FunctorWithIndex" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> []</td><td class="doc"><p>The position in the list is available as the index.
58 58
 </p></td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc"><p>The position in the sequence is available as the index.
59  
-</p></td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:imapped" class="def">imapped</a> :: <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i (f a) (f b) a b<a href="src/Control-Lens-Indexed.html#imapped" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code> for a <code><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a></code>.
  59
+</p></td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> () <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> r ((-&gt;) r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:imapped" class="def">imapped</a> :: <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i (f a) (f b) a b<a href="src/Control-Lens-Indexed.html#imapped" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code> for a <code><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a></code>.
60 60
 </p><p>If you don't need access to the index, then <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> is more flexible in what it accepts.
61 61
 </p></div></div><h1 id="g:3">Indexed Foldables
62 62
 </h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f =&gt; <a name="t:FoldableWithIndex" class="def">FoldableWithIndex</a> i f | f -&gt; i <span class="keyword">where</span><a href="src/Control-Lens-Indexed.html#FoldableWithIndex" class="link">Source</a></p><div class="doc"><p>A container that supports folding with an additional index.
@@ -70,7 +70,7 @@
70 70
 </p><p>When you don't need access to the index then <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#v:foldr-39-">foldr'</a></code> is more flexible in what it accepts.
71 71
 </p><pre><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#v:foldr-39-">foldr'</a></code> &#8801; <code><a href="Control-Lens-Indexed.html#v:ifoldr-39-">ifoldr'</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code></pre></div><p class="src"><a name="v:ifoldl-39-" class="def">ifoldl'</a> ::  (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; f a -&gt; b<a href="src/Control-Lens-Indexed.html#ifoldl%27" class="link">Source</a></p><div class="doc"><p>Fold over the elements of a structure with an index, associating to the left, but <em>strictly</em>.
72 72
 </p><p>When you don't need access to the index then <code><a href="Control-Lens-Fold.html#v:foldlOf-39-">foldlOf'</a></code> is more flexible in what it accepts.
73  
-</p><pre><code><a href="Control-Lens-Fold.html#v:foldlOf-39-">foldlOf'</a></code> l &#8801; <code><a href="Control-Lens-Fold.html#v:ifoldlOf-39-">ifoldlOf'</a></code> l <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code></pre></div></div><div class="subs instances"><p id="control.i:FoldableWithIndex" class="caption collapser" onclick="toggleSection('i:FoldableWithIndex')">Instances</p><div id="section.i:FoldableWithIndex" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ifolded" class="def">ifolded</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i (f a) a<a href="src/Control-Lens-Indexed.html#ifolded" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> of a <code><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a></code> container.
  73
+</p><pre><code><a href="Control-Lens-Fold.html#v:foldlOf-39-">foldlOf'</a></code> l &#8801; <code><a href="Control-Lens-Fold.html#v:ifoldlOf-39-">ifoldlOf'</a></code> l <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code></pre></div></div><div class="subs instances"><p id="control.i:FoldableWithIndex" class="caption collapser" onclick="toggleSection('i:FoldableWithIndex')">Instances</p><div id="section.i:FoldableWithIndex" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> () <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ifolded" class="def">ifolded</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i (f a) a<a href="src/Control-Lens-Indexed.html#ifolded" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> of a <code><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a></code> container.
74 74
 </p></div></div><div class="top"><p class="src"><a name="v:ifolding" class="def">ifolding</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a> i s a<a href="src/Control-Lens-Indexed.html#ifolding" class="link">Source</a></p><div class="doc"><p>Obtain a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> by lifting an operation that returns a foldable result.
75 75
 </p><p>This can be useful to lift operations from <code>Data.List</code> and elsewhere into a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>.
76 76
 </p></div></div><h2 id="g:4">Indexed Foldable Combinators
@@ -103,16 +103,19 @@
103 103
 </p><pre><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#v:foldlM">foldlM</a></code> &#8801; <code><a href="Control-Lens-Indexed.html#v:ifoldlM">ifoldlM</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code></pre></div></div><div class="top"><p class="src"><a name="v:itoList" class="def">itoList</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; f a -&gt; [(i, a)]<a href="src/Control-Lens-Indexed.html#itoList" class="link">Source</a></p><div class="doc"><p>Extract the key-value pairs from a structure.
104 104
 </p><p>When you don't need access to the indices in the result, then <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#v:toList">toList</a></code> is more flexible in what it accepts.
105 105
 </p><pre><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#v:toList">toList</a></code> &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:map">map</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Tuple.html#v:fst">fst</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:itoList">itoList</a></code></pre></div></div><h1 id="g:5">Converting to Folds
106  
-</h1><div class="top"><p class="src"><a name="v:withIndices" class="def">withIndices</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:Fold">Fold</a> (f a) (i, a)<a href="src/Control-Lens-Indexed.html#withIndices" class="link">Source</a></p><div class="doc"><p>Fold a container with indices returning both the indices and the values.
107  
-</p></div></div><div class="top"><p class="src"><a name="v:indices" class="def">indices</a> :: <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:Fold">Fold</a> (f a) i<a href="src/Control-Lens-Indexed.html#indices" class="link">Source</a></p><div class="doc"><p>Fold a container with indices returning only the indices.
  106
+</h1><div class="top"><p class="src"><a name="v:withIndex" class="def">withIndex</a> :: (<a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> p (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i) f s t (i, s) (j, t)<a href="src/Control-Lens-Indexed.html#withIndex" class="link">Source</a></p><div class="doc"><p>Fold a container with indices returning both the indices and the values.
  107
+</p><p>The result is only valid to compose in a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, if you don't edit the
  108
+ index as edits to the index have no effect.
  109
+</p></div></div><div class="top"><p class="src"><a name="v:index" class="def">index</a> :: (<a href="Control-Lens-Indexed.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; <a href="Control-Lens-Type.html#t:Overloading-39-">Overloading'</a> p (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i) f s i<a href="src/Control-Lens-Indexed.html#index" class="link">Source</a></p><div class="doc"><p>When composed with an indexed fold or indexed traversal this yields an
  110
+ (indexed) fold of the indices.
108 111
 </p></div></div><h1 id="g:6">Indexed Traversables
109 112
 </h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i t, <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i t, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> t) =&gt; <a name="t:TraversableWithIndex" class="def">TraversableWithIndex</a> i t | t -&gt; i <span class="keyword">where</span><a href="src/Control-Lens-Indexed.html#TraversableWithIndex" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> with an additional index.
110 113
 </p><p>An instance must satisfy a (modified) form of the <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> laws:
111 114
 </p><pre>
112 115
  <code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code> <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></code>) &#8801; <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></code>
113  
- <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> (<code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> f) <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> g &#8801; <code>getCompose</code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> (i -&gt; <code>Compose</code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> (f i) <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> g i)
  116
+ <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> (<code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> f) <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> g &#8801; <code>getCompose</code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Indexed.html#v:itraverse">itraverse</a></code> (\i -&gt; <code>Compose</code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> (f i) <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> g i)
114 117
 </pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:itraverse" class="def">itraverse</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (i -&gt; a -&gt; f b) -&gt; t a -&gt; f (t b)<a href="src/Control-Lens-Indexed.html#itraverse" class="link">Source</a></p><div class="doc"><p>Traverse an indexed container.
115  
-</p></div></div><div class="subs instances"><p id="control.i:TraversableWithIndex" class="caption collapser" onclick="toggleSection('i:TraversableWithIndex')">Instances</p><div id="section.i:TraversableWithIndex" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:itraversed" class="def">itraversed</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i (f a) (f b) a b<a href="src/Control-Lens-Indexed.html#itraversed" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> of a <code><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a></code> container.
  118
+</p></div></div><div class="subs instances"><p id="control.i:TraversableWithIndex" class="caption collapser" onclick="toggleSection('i:TraversableWithIndex')">Instances</p><div id="section.i:TraversableWithIndex" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> Vector</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> () <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) =&gt; <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> k (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> k (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:itraversed" class="def">itraversed</a> :: <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i f =&gt; <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i (f a) (f b) a b<a href="src/Control-Lens-Indexed.html#itraversed" class="link">Source</a></p><div class="doc"><p>The <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> of a <code><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a></code> container.
116 119
 </p></div></div><h1 id="g:7">Indexed Traversable Combinators
117 120
 </h1><div class="top"><p class="src"><a name="v:ifor" class="def">ifor</a> :: (<a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; t a -&gt; (i -&gt; a -&gt; f b) -&gt; f (t b)<a href="src/Control-Lens-Indexed.html#ifor" class="link">Source</a></p><div class="doc"><p>Traverse with an index (and the arguments flipped)
118 121
 </p><pre>
46  Control-Lens-Internal.html
24 additions, 22 deletions not shown
27  Control-Lens-Iso.html
@@ -6,8 +6,9 @@
6 6
 </a></li><li><a href="#g:3">Consuming Isomorphisms
7 7
 </a></li><li><a href="#g:4">Working with isomorphisms
8 8
 </a><ul><li><a href="#g:5">Common Isomorphisms
9  
-</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Iso">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso-39-">Iso'</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIso">AnIso</a> s t a b = <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b a (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) -&gt; <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b s (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIso-39-">AnIso'</a> s a = <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s s a a</li><li class="src short"><a href="#v:iso">iso</a> ::  (s -&gt; a) -&gt; (b -&gt; t) -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:from">from</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> b a t s</li><li class="src short"><a href="#v:cloneIso">cloneIso</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:runIso">runIso</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (s -&gt; a, b -&gt; t)</li><li class="src short"><a href="#v:au">au</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((s -&gt; a) -&gt; e -&gt; b) -&gt; e -&gt; t</li><li class="src short"><a href="#v:auf">auf</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((r -&gt; a) -&gt; e -&gt; b) -&gt; (r -&gt; s) -&gt; e -&gt; t</li><li class="src short"><a href="#v:under">under</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (t -&gt; s) -&gt; b -&gt; a</li><li class="src short"><a href="#v:mapping">mapping</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s) (f t) (f a) (f b)</li><li class="src short"><a href="#v:simple">simple</a> ::  <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a</li><li class="src short"><a href="#v:non">non</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:anon">anon</a> ::  a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:enum">enum</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Enum">Enum</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> a</li><li class="src short"><a href="#v:curried">curried</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> ((a, b) -&gt; c) ((d, e) -&gt; f) (a -&gt; b -&gt; c) (d -&gt; e -&gt; f)</li><li class="src short"><a href="#v:uncurried">uncurried</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) ((a, b) -&gt; c) ((d, e) -&gt; f)</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Strict">Strict</a> s a | s -&gt; a, a -&gt; s <span class="keyword">where</span><ul class="subs"><li><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> s a</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Isomorphism Lenses
10  
-</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso" class="def">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Iso" class="link">Source</a></p><div class="doc"><p>Isomorphism families can be composed with other lenses using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) and <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>.
  9
+</a></li></ul></li><li><a href="#g:6">Profunctors
  10
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Iso">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso-39-">Iso'</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIso">AnIso</a> s t a b = <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b a (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) -&gt; <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b s (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIso-39-">AnIso'</a> s a = <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s s a a</li><li class="src short"><a href="#v:iso">iso</a> ::  (s -&gt; a) -&gt; (b -&gt; t) -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:from">from</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> b a t s</li><li class="src short"><a href="#v:cloneIso">cloneIso</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:runIso">runIso</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (s -&gt; a, b -&gt; t)</li><li class="src short"><a href="#v:au">au</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((s -&gt; a) -&gt; e -&gt; b) -&gt; e -&gt; t</li><li class="src short"><a href="#v:auf">auf</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((r -&gt; a) -&gt; e -&gt; b) -&gt; (r -&gt; s) -&gt; e -&gt; t</li><li class="src short"><a href="#v:under">under</a> ::  <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (t -&gt; s) -&gt; b -&gt; a</li><li class="src short"><a href="#v:mapping">mapping</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s) (f t) (f a) (f b)</li><li class="src short"><a href="#v:simple">simple</a> ::  <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a</li><li class="src short"><a href="#v:non">non</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:anon">anon</a> ::  a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:enum">enum</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Enum">Enum</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> a</li><li class="src short"><a href="#v:curried">curried</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> ((a, b) -&gt; c) ((d, e) -&gt; f) (a -&gt; b -&gt; c) (d -&gt; e -&gt; f)</li><li class="src short"><a href="#v:uncurried">uncurried</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) ((a, b) -&gt; c) ((d, e) -&gt; f)</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Strict">Strict</a> s a | s -&gt; a, a -&gt; s <span class="keyword">where</span><ul class="subs"><li><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> s a</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Profunctor">Profunctor</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:dimap">dimap</a> ::  (a -&gt; b) -&gt; (c -&gt; d) -&gt; p b c -&gt; p a d</li><li><a href="#v:lmap">lmap</a> ::  (a -&gt; b) -&gt; p b c -&gt; p a c</li><li><a href="#v:rmap">rmap</a> ::  (b -&gt; c) -&gt; p a b -&gt; p a c</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Isomorphism Lenses
  11
+</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso" class="def">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Iso" class="link">Source</a></p><div class="doc"><p>Isomorphism families can be composed with other lenses using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) and <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>.
11 12
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso-39-" class="def">Iso'</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a<a href="src/Control-Lens-Type.html#Iso%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code></pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIso" class="def">AnIso</a> s t a b = <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b a (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) -&gt; <a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b s (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t)<a href="src/Control-Lens-Iso.html#AnIso" class="link">Source</a></p><div class="doc"><p>When you see this as an argument to a function, it expects an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>.
12 13
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIso-39-" class="def">AnIso'</a> s a = <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s s a a<a href="src/Control-Lens-Iso.html#AnIso%27" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:AnIso">AnIso</a></code>.
13 14
 </p></div></div><h1 id="g:2">Isomorphism Construction
@@ -83,4 +84,24 @@
83 84
 </p><pre><code><a href="Control-Lens-Iso.html#v:curried">curried</a></code> = <code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Tuple.html#v:curry">curry</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Tuple.html#v:uncurry">uncurry</a></code></pre></div></div><div class="top"><p class="src"><a name="v:uncurried" class="def">uncurried</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) ((a, b) -&gt; c) ((d, e) -&gt; f)<a href="src/Control-Lens-Iso.html#uncurried" class="link">Source</a></p><div class="doc"><p>The canonical isomorphism for uncurrying and currying a function.
84 85
 </p><pre><code><a href="Control-Lens-Iso.html#v:uncurried">uncurried</a></code> = <code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Tuple.html#v:uncurry">uncurry</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Tuple.html#v:curry">curry</a></code></pre><pre><code><a href="Control-Lens-Iso.html#v:uncurried">uncurried</a></code> = <code><a href="Control-Lens-Iso.html#v:from">from</a></code> <code><a href="Control-Lens-Iso.html#v:curried">curried</a></code></pre></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Strict" class="def">Strict</a> s a | s -&gt; a, a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Iso.html#Strict" class="link">Source</a></p><div class="doc"><p>Ad hoc conversion between &quot;strict&quot; and &quot;lazy&quot; versions of a structure,
85 86
  such as <code><a href="/Library/Haskell/ghc-7.4.1/lib/text-0.11.2.0/doc/html/Data-Text-Internal.html#t:Text">Text</a></code> or <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></code>.
86  
-</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:strict" class="def">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> s a<a href="src/Control-Lens-Iso.html#strict" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Strict" class="caption collapser" onclick="toggleSection('i:Strict')">Instances</p><div id="section.i:Strict" class="show"><table><tr><td class="src"><a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="/Library/Haskell/ghc-7.4.1/lib/text-0.11.2.0/doc/html/Data-Text-Lazy-Internal.html#t:Text">Text</a> <a href="/Library/Haskell/ghc-7.4.1/lib/text-0.11.2.0/doc/html/Data-Text-Internal.html#t:Text">Text</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.10.0</p></div></body></html>
  87
+</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:strict" class="def">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> s a<a href="src/Control-Lens-Iso.html#strict" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Strict" class="caption collapser" onclick="toggleSection('i:Strict')">Instances</p><div id="section.i:Strict" class="show"><table><tr><td class="src"><a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="/Library/Haskell/ghc-7.4.1/lib/text-0.11.2.0/doc/html/Data-Text-Lazy-Internal.html#t:Text">Text</a> <a href="/Library/Haskell/ghc-7.4.1/lib/text-0.11.2.0/doc/html/Data-Text-Internal.html#t:Text">Text</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:6">Profunctors
  88
+</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Profunctor" class="def">Profunctor</a> p  <span class="keyword">where</span></p><div class="doc"><p>Formally, <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> represents a <code>profunctor</code> from <code>Hask</code> -&gt; <code>Hask</code>
  89
+</p><p>Intuitively it is a bifunctor where the first argument is contravariant
  90
+ and the second argument is covariant.
  91
+</p><p>You can define a profunctor by either defining <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> or by defining both
  92
+ <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> and <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code>.
  93
+</p><p>If you supply <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code>, you should ensure that:
  94
+</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code></pre><p>If you supply <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> and <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code>, ensure:
  95
+</p><pre>
  96
+ <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code>
  97
+ <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code>
  98
+</pre><p>If you supply both, you should also ensure:
  99
+</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f . <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g</pre><p>These ensure by parametricity:
  100
+</p><pre>
  101
+ <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> (f . g) (h . i) &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> g h <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f i
  102
+ <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> (f . g) &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> g <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f
  103
+ <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> (f . g) &#8801; <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g
  104
+</pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:dimap" class="def">dimap</a> ::  (a -&gt; b) -&gt; (c -&gt; d) -&gt; p b c -&gt; p a d</p><div class="doc"><p>Map over both arguments at the same time.
  105
+</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g</pre></div><p class="src"><a name="v:lmap" class="def">lmap</a> ::  (a -&gt; b) -&gt; p b c -&gt; p a c</p><div class="doc"><p>Map the first argument contravariantly
  106
+</p><pre><code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code></pre></div><p class="src"><a name="v:rmap" class="def">rmap</a> ::  (b -&gt; c) -&gt; p a b -&gt; p a c</p><div class="doc"><p>Map the second argument covariantly
  107
+</p><pre><code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#v:id">id</a></code></pre></div></div><div class="subs instances"><p id="control.i:Profunctor" class="caption collapser" onclick="toggleSection('i:Profunctor')">Instances</p><div id="section.i:Profunctor" class="show"><table><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> Tagged</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> <a href="Control-Lens-Internal.html#t:Review">Review</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:UpStar">UpStar</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:DownStar">DownStar</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:Arrow">Arrow</a> p =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:WrappedArrow">WrappedArrow</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> w =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (Cokleisli w)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> f, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (Procompose f g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal.html#t:Market">Market</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal.html#t:Exchange">Exchange</a> a b)</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.10.0</p></div></body></html>
57  Control-Lens-Lens.html
@@ -3,13 +3,14 @@
3 3
 //]]>
4 4
 </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Lens.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.8: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.Lens</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
5 5
 </a><ul><li><a href="#g:2">Concrete Lenses
6  
-</a></li></ul></li><li><a href="#g:3">Combinators
7  
-</a></li><li><a href="#g:4">Indexed
8  
-</a><ul><li><a href="#g:5">Lateral Composition
9  
-</a></li><li><a href="#g:6">Setting Functionally with Passthrough
10  
-</a></li><li><a href="#g:7">Setting State with Passthrough
11  
-</a></li><li><a href="#g:8">Cloning Lenses
12  
-</a></li></ul></li><li><a href="#g:9">Context
  6
+</a></li><li><a href="#g:3">Implemented with Context
  7
+</a></li></ul></li><li><a href="#g:4">Combinators
  8
+</a></li><li><a href="#g:5">Indexed
  9
+</a><ul><li><a href="#g:6">Lateral Composition
  10
+</a></li><li><a href="#g:7">Setting Functionally with Passthrough
  11
+</a></li><li><a href="#g:8">Setting State with Passthrough
  12
+</a></li><li><a href="#g:9">Cloning Lenses
  13
+</a></li></ul></li><li><a href="#g:10">Context
13 14
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A <code><code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b</code> is a purely functional reference.
14 15
 </p><p>While a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> could be used for
15 16
  <code><a href="Control-Lens-Getter.html#t:Getting">Getting</a></code> like a valid <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>,
@@ -32,7 +33,7 @@
32 33
  <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>.
33 34
 </p><p>In the examples below, <code>getter</code> and <code>setter</code> are supplied as example getters
34 35
  and setters, and are not actual functions supplied by this package.
35  
-</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:Lens">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Lens-39-">Lens'</a> s a = <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:ALens">ALens</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b) s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:ALens-39-">ALens'</a> s a = <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a a</li><li class="src short"><a href="#v:lens">lens</a> ::  (s -&gt; a) -&gt; (s -&gt; b -&gt; t) -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b</li><li class="src short"><a href="#v:-37--37--126-">(%%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:-37--37--61-">(%%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s s a b -&gt; (a -&gt; (r, b)) -&gt; m r</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens">IndexedLens</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens-39-">IndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a> i s s a a</li><li class="src short"><a href="#v:-37--37--64--126-">(%%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:-37--37--64--61-">(%%@=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s s a b -&gt; (i -&gt; a -&gt; (r, b)) -&gt; m r</li><li class="src short"><a href="#v:-60--37--64--126-">(&lt;%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s t a b -&gt; (i -&gt; a -&gt; b) -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-60--37--64--61-">(&lt;%@=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s s a b -&gt; (i -&gt; a -&gt; b) -&gt; m b</li><li class="src short"><a href="#v:choosing">choosing</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</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">LensLike</a> f s' t' a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> s s') (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t t') a b</li><li class="src short"><a href="#v:chosen">chosen</a> ::  <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b) a b</li><li class="src short"><a href="#v:alongside">alongside</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s' t' a' b' -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (s, s') (t, t') (a, a') (b, b')</li><li class="src short"><a href="#v:inside">inside</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (e -&gt; s) (e -&gt; t) (e -&gt; a) (e -&gt; b)</li><li class="src short"><a href="#v:-60--37--126-">(&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-60--43--126-">(&lt;+~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--45--126-">(&lt;-~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--42--126-">(&lt;*~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--47--47--126-">(&lt;//~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--94--126-">(&lt;^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; e -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--94--94--126-">(&lt;^^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; e -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--42--42--126-">(&lt;**~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--124--124--126-">(&lt;||~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s t <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; s -&gt; (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>, t)</li><li class="src short"><a href="#v:-60--38--38--126-">(&lt;&amp;&amp;~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s t <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; s -&gt; (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>, t)</li><li class="src short"><a href="#v:-60--60--62--126-">(&lt;&lt;&gt;~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> m) s t m m -&gt; m -&gt; s -&gt; (m, t)</li><li class="src short"><a href="#v:-60--60--37--126-">(&lt;&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--60-.-126-">(&lt;&lt;.~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a b -&gt; b -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--37--61-">(&lt;%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s s a b -&gt; (a -&gt; b) -&gt; m b</li><li class="src short"><a href="#v:-60--43--61-">(&lt;+=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--45--61-">(&lt;-=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--42--61-">(&lt;*=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--47--47--61-">(&lt;//=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--94--61-">(&lt;^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; e -&gt; m a</li><li class="src short"><a href="#v:-60--94--94--61-">(&lt;^^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; e -&gt; m a</li><li class="src short"><a href="#v:-60--42--42--61-">(&lt;**=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--124--124--61-">(&lt;||=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:-60--38--38--61-">(&lt;&amp;&amp;=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:-60--60--62--61-">(&lt;&lt;&gt;=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> r) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s r -&gt; r -&gt; m r</li><li class="src short"><a href="#v:-60--60--37--61-">(&lt;&lt;%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s s a b -&gt; (a -&gt; b) -&gt; m a</li><li class="src short"><a href="#v:-60--60-.-61-">(&lt;&lt;.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s s a b -&gt; b -&gt; m a</li><li class="src short"><a href="#v:-60--60--126-">(&lt;&lt;~)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a b -&gt; m b -&gt; m b</li><li class="src short"><a href="#v:cloneLens">cloneLens</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Context">Context</a> a b t = <a href="#v:Context">Context</a> (b -&gt; t) a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Context-39-">Context'</a> a = <a href="Control-Lens-Lens.html#t:Context">Context</a> a a</li><li class="src short"><a href="#v:locus">locus</a> :: ComonadStore a w =&gt; <a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a> (w s) a</li></ul></div><div id="interface"><h1 id="g:1">Lenses
  36
+</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:Lens">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Lens-39-">Lens'</a> s a = <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:ALens">ALens</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Pretext">Pretext</a> (-&gt;) a b) s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:ALens-39-">ALens'</a> s a = <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Loupe">Loupe</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b) s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:Loupe-39-">Loupe'</a> s a = <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s s a a</li><li class="src short"><a href="#v:lens">lens</a> ::  (s -&gt; a) -&gt; (s -&gt; b -&gt; t) -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b</li><li class="src short"><a href="#v:-37--37--126-">(%%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:-37--37--61-">(%%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s s a b -&gt; (a -&gt; (r, b)) -&gt; m r</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens">IndexedLens</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens-39-">IndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIndexedLens">AnIndexedLens</a> i s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Pretext">Pretext</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b) s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIndexedLens-39-">AnIndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:AnIndexedLens">AnIndexedLens</a> i s s a a</li><li class="src short"><a href="#v:-37--37--64--126-">(%%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:-37--37--64--61-">(%%@=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s s a b -&gt; (i -&gt; a -&gt; (r, b)) -&gt; m r</li><li class="src short"><a href="#v:-60--37--64--126-">(&lt;%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s t a b -&gt; (i -&gt; a -&gt; b) -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-60--37--64--61-">(&lt;%@=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s s a b -&gt; (i -&gt; a -&gt; b) -&gt; m b</li><li class="src short"><a href="#v:choosing">choosing</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</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">LensLike</a> f s' t' a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> s s') (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t t') a b</li><li class="src short"><a href="#v:chosen">chosen</a> ::  <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b) a b</li><li class="src short"><a href="#v:alongside">alongside</a> ::  <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s' t' a' b' -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (s, s') (t, t') (a, a') (b, b')</li><li class="src short"><a href="#v:inside">inside</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (e -&gt; s) (e -&gt; t) (e -&gt; a) (e -&gt; b)</li><li class="src short"><a href="#v:-60--37--126-">(&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-60--43--126-">(&lt;+~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--45--126-">(&lt;-~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--42--126-">(&lt;*~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--47--47--126-">(&lt;//~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--94--126-">(&lt;^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; e -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--94--94--126-">(&lt;^^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; e -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--42--42--126-">(&lt;**~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> a =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a a -&gt; a -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--124--124--126-">(&lt;||~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s t <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; s -&gt; (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>, t)</li><li class="src short"><a href="#v:-60--38--38--126-">(&lt;&amp;&amp;~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s t <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; s -&gt; (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>, t)</li><li class="src short"><a href="#v:-60--60--62--126-">(&lt;&lt;&gt;~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> m) s t m m -&gt; m -&gt; s -&gt; (m, t)</li><li class="src short"><a href="#v:-60--60--37--126-">(&lt;&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--60-.-126-">(&lt;&lt;.~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s t a b -&gt; b -&gt; s -&gt; (a, t)</li><li class="src short"><a href="#v:-60--37--61-">(&lt;%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s s a b -&gt; (a -&gt; b) -&gt; m b</li><li class="src short"><a href="#v:-60--43--61-">(&lt;+=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--45--61-">(&lt;-=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--42--61-">(&lt;*=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--47--47--61-">(&lt;//=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--94--61-">(&lt;^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; e -&gt; m a</li><li class="src short"><a href="#v:-60--94--94--61-">(&lt;^^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; e -&gt; m a</li><li class="src short"><a href="#v:-60--42--42--61-">(&lt;**=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s a -&gt; a -&gt; m a</li><li class="src short"><a href="#v:-60--124--124--61-">(&lt;||=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:-60--38--38--61-">(&lt;&amp;&amp;=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) s <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:-60--60--62--61-">(&lt;&lt;&gt;=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> r) =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> r) s r -&gt; r -&gt; m r</li><li class="src short"><a href="#v:-60--60--37--61-">(&lt;&lt;%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s s a b -&gt; (a -&gt; b) -&gt; m a</li><li class="src short"><a href="#v:-60--60-.-61-">(&lt;&lt;.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> a) s s a b -&gt; b -&gt; m a</li><li class="src short"><a href="#v:-60--60--126-">(&lt;&lt;~)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a b -&gt; m b -&gt; m b</li><li class="src short"><a href="#v:cloneLens">cloneLens</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Context">Context</a> a b t = <a href="#v:Context">Context</a> (b -&gt; t) a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Context-39-">Context'</a> a = <a href="Control-Lens-Lens.html#t:Context">Context</a> a a</li><li class="src short"><a href="#v:locus">locus</a> :: <a href="Control-Lens-Internal.html#t:Contextual">Contextual</a> p =&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (p a c s) (p b c s) a b</li></ul></div><div id="interface"><h1 id="g:1">Lenses
36 37
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Lens" class="def">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Type.html#Lens" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> is actually a lens family as described in
37 38
  <a href="http://comonad.com/reader/2012/mirrored-lenses/">http://comonad.com/reader/2012/mirrored-lenses/</a>.
38 39
 </p><p>With great power comes great responsibility and a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> is subject to the
@@ -54,8 +55,14 @@
54 55
  l <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#v:pure">pure</a></code> &#8801; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#v:pure">pure</a></code>
55 56
  <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> (l f) <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> l g &#8801; <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#v:getCompose">getCompose</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> l (<code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#t:Compose">Compose</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> f <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> g)
56 57
 </pre><pre>type <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b = forall f. <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> f =&gt; <code><a href="Control-Lens-Type.html#t:LensLike">LensLike</a></code> f s t a b</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Lens-39-" class="def">Lens'</a> s a = <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s s a a<a href="src/Control-Lens-Type.html#Lens%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code></pre></div></div><h2 id="g:2">Concrete Lenses
57  
-</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ALens" class="def">ALens</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b) s t a b<a href="src/Control-Lens-Lens.html#ALens" class="link">Source</a></p><div class="doc"><p>When you see this as an argument to a function, it expects a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>.
58  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ALens-39-" class="def">ALens'</a> s a = <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a a<a href="src/Control-Lens-Lens.html#ALens%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:ALens-39-">ALens'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Lens.html#t:ALens">ALens</a></code></pre></div></div><h1 id="g:3">Combinators
  58
+</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ALens" class="def">ALens</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Pretext">Pretext</a> (-&gt;) a b) s t a b<a href="src/Control-Lens-Lens.html#ALens" class="link">Source</a></p><div class="doc"><p>When you see this as an argument to a function, it expects a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>.
  59
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ALens-39-" class="def">ALens'</a> s a = <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s s a a<a href="src/Control-Lens-Lens.html#ALens%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:ALens-39-">ALens'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Lens.html#t:ALens">ALens</a></code></pre></div></div><h2 id="g:3">Implemented with Context
  60
+</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe" class="def">Loupe</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b) s t a b<a href="src/Control-Lens-Lens.html#Loupe" class="link">Source</a></p><div class="doc"><p>A <code><code><a href="Control-Lens-Lens.html#t:Loupe">Loupe</a></code> s t a b</code> is almost a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>. It can be composed on the left of other lenses,
  61
+ you can use <code><a href="Control-Lens-Lens.html#v:cloneLens">cloneLens</a></code> to promote it to a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>, and it provides a minimalist lens-like
  62
+ interface. They can be used in an API where you need to pass around lenses inside containers
  63
+ or as monadic results. Unlike a <code>ReifiedLens</code> they can be composed and used directly, but
  64
+ they are slightly lower performance.
  65
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe-39-" class="def">Loupe'</a> s a = <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s s a a<a href="src/Control-Lens-Lens.html#Loupe%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:Loupe-39-">Loupe'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Lens.html#t:Loupe">Loupe</a></code></pre></div></div><h1 id="g:4">Combinators
59 66
 </h1><div class="top"><p class="src"><a name="v:lens" class="def">lens</a> ::  (s -&gt; a) -&gt; (s -&gt; b -&gt; t) -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b<a href="src/Control-Lens-Lens.html#lens" class="link">Source</a></p><div class="doc"><p>Build a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> from a getter and a setter.
60 67
 </p><pre><code><a href="Control-Lens-Lens.html#v:lens">lens</a></code> :: <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> f =&gt; (s -&gt; a) -&gt; (s -&gt; b -&gt; t) -&gt; (a -&gt; f b) -&gt; s -&gt; f t</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>s ^. lens getter setter
61 68
 </code></strong>getter s
@@ -95,9 +102,9 @@
95 102
  (<code><a href="Control-Lens-Lens.html#v:-37--37--61-">%%=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s s a b       -&gt; (a -&gt; (r, b)) -&gt; m r
96 103
  (<code><a href="Control-Lens-Lens.html#v:-37--37--61-">%%=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m             =&gt; <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s s a b      -&gt; (a -&gt; (r, b)) -&gt; m r
97 104
  (<code><a href="Control-Lens-Lens.html#v:-37--37--61-">%%=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> r) =&gt; <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s s a b -&gt; (a -&gt; (r, b)) -&gt; m r
98  
-</pre></div></div><h1 id="g:4">Indexed
  105
+</pre></div></div><h1 id="g:5">Indexed
99 106
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedLens" class="def">IndexedLens</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Type.html#IndexedLens" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> is a valid <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> and a valid <code><a href="Control-Lens-Traversal.html#t:IndexedTraversal">IndexedTraversal</a></code>.
100  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedLens-39-" class="def">IndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a> i s s a a<a href="src/Control-Lens-Type.html#IndexedLens%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:IndexedLens-39-">IndexedLens'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> i)</pre></div></div><div class="top"><p class="src"><a name="v:-37--37--64--126-" class="def">(%%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Lens.html#%25%25%40~" class="link">Source</a></p><div class="doc"><p>Adjust the target of an <code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> returning a supplementary result, or
  107
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedLens-39-" class="def">IndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a> i s s a a<a href="src/Control-Lens-Type.html#IndexedLens%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:IndexedLens-39-">IndexedLens'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> i)</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIndexedLens" class="def">AnIndexedLens</a> i s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Pretext">Pretext</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b) s t a b<a href="src/Control-Lens-Lens.html#AnIndexedLens" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIndexedLens-39-" class="def">AnIndexedLens'</a> i s a = <a href="Control-Lens-Lens.html#t:AnIndexedLens">AnIndexedLens</a> i s s a a<a href="src/Control-Lens-Lens.html#AnIndexedLens%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:-37--37--64--126-" class="def">(%%@~)</a> ::  <a href="Control-Lens-Type.html#t:IndexedLensLike">IndexedLensLike</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Lens.html#%25%25%40~" class="link">Source</a></p><div class="doc"><p>Adjust the target of an <code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> returning a supplementary result, or
101 108
  adjust all of the targets of an <code><a href="Control-Lens-Traversal.html#t:IndexedTraversal">IndexedTraversal</a></code> and return a monoidal summary
102 109
  of the supplementary results and the answer.
103 110
 </p><pre>(<code><a href="Control-Lens-Lens.html#v:-37--37--64--126-">%%@~</a></code>) &#8801; <code>withIndex</code></pre><pre>
@@ -128,7 +135,7 @@
128 135
 </p><pre>
129 136
  (<code><a href="Control-Lens-Lens.html#v:-60--37--64--61-">&lt;%@=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m                <code><a href="Control-Lens-Lens.html#t:IndexedLens">IndexedLens</a></code> i s s a b      -&gt; (i -&gt; a -&gt; b) -&gt; m b
130 137
  (<code><a href="Control-Lens-Lens.html#v:-60--37--64--61-">&lt;%@=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> b) =&gt; <code><a href="Control-Lens-Traversal.html#t:IndexedTraversal">IndexedTraversal</a></code> i s s a b -&gt; (i -&gt; a -&gt; b) -&gt; m b
131  
-</pre></div></div><h2 id="g:5">Lateral Composition
  138
+</pre></div></div><h2 id="g:6">Lateral Composition
132 139
 </h2><div class="top"><p class="src"><a name="v:choosing" class="def">choosing</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</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">LensLike</a> f s' t' a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> s s') (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t t') a b<a href="src/Control-Lens-Lens.html#choosing" class="link">Source</a></p><div class="doc"><p>Merge two lenses, getters, setters, folds or traversals.
133 140
 </p><pre><code><a href="Control-Lens-Lens.html#v:chosen">chosen</a></code> &#8801; <code><a href="Control-Lens-Lens.html#v:choosing">choosing</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code></pre><pre>
134 141
  <code><a href="Control-Lens-Lens.html#v:choosing">choosing</a></code> :: <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s' a           -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code> s s') a
@@ -145,13 +152,13 @@
145 152
 </code></strong>&quot;hello&quot;
146 153
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Right a &amp; chosen *~ b
147 154
 </code></strong>Right (a * b)
148  
-</pre></div></div><div class="top"><p class="src"><a name="v:alongside" class="def">alongside</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s' t' a' b' -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (s, s') (t, t') (a, a') (b, b')<a href="src/Control-Lens-Lens.html#alongside" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Lens.html#v:alongside">alongside</a></code> makes a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> from two other lenses.
  155
+</pre></div></div><div class="top"><p class="src"><a name="v:alongside" class="def">alongside</a> ::  <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Loupe">Loupe</a> s' t' a' b' -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (s, s') (t, t') (a, a') (b, b')<a href="src/Control-Lens-Lens.html#alongside" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Lens.html#v:alongside">alongside</a></code> makes a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> from two other lenses.
149 156
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(Left a, Right b)^.alongside chosen chosen
150 157
 </code></strong>(a,b)
151 158
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(Left a, Right b) &amp; alongside chosen chosen .~ (c,d)
152 159
 </code></strong>(Left c,Right d)
153 160
 </pre><pre><code><a href="Control-Lens-Lens.html#v:alongside">alongside</a></code> :: <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b -&gt; <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s' t' a' b' -&gt; <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> (s,s') (t,t') (a,a') (b,b')</pre></div></div><div class="top"><p class="src"><a name="v:inside" class="def">inside</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (e -&gt; s) (e -&gt; t) (e -&gt; a) (e -&gt; b)<a href="src/Control-Lens-Lens.html#inside" class="link">Source</a></p><div class="doc"><p>Lift a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> so it can run under a function.
154  
-</p></div></div><h2 id="g:6">Setting Functionally with Passthrough
  161
+</p></div></div><h2 id="g:7">Setting Functionally with Passthrough
155 162
 </h2><div class="top"><p class="src"><a name="v:-60--37--126-" class="def">(&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (b, t)<a href="src/Control-Lens-Lens.html#%3C%25~" class="link">Source</a></p><div class="doc"><p>Modify the target of a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> and return the result
156 163
 </p><p>When you do not need the result of the addition, (<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) is more flexible.
157 164
 </p><pre>
@@ -222,7 +229,7 @@
222 229
  (<code><a href="Control-Lens-Lens.html#v:-60--60--37--126-">&lt;&lt;%~</a></code>) ::             <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b      -&gt; b -&gt; s -&gt; (a, t)
223 230
  (<code><a href="Control-Lens-Lens.html#v:-60--60--37--126-">&lt;&lt;%~</a></code>) ::             <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b       -&gt; b -&gt; s -&gt; (a, t)
224 231
  (<code><a href="Control-Lens-Lens.html#v:-60--60--37--126-">&lt;&lt;%~</a></code>) :: <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> b =&gt; <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s t a b -&gt; b -&gt; s -&gt; (a, t)
225  
-</pre></div></div><h2 id="g:7">Setting State with Passthrough
  232
+</pre></div></div><h2 id="g:8">Setting State with Passthrough
226 233
 </h2><div class="top"><p class="src"><a name="v:-60--37--61-" class="def">(&lt;%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> b) s s a b -&gt; (a -&gt; b) -&gt; m b<a href="src/Control-Lens-Lens.html#%3C%25%3D" class="link">Source</a></p><div class="doc"><p>Modify the target of a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> into your monad's state by a user supplied
227 234
  function and return the result.
228 235
 </p><p>When applied to a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, it this will return a monoidal summary of all of the intermediate
@@ -316,27 +323,29 @@
316 323
  (<code><a href="Control-Lens-Lens.html#v:-60--60--126-">&lt;&lt;~</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m =&gt; <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s s a b  -&gt; m b -&gt; m b
317 324
 </pre><p>NB: This is limited to taking an actual <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> than admitting a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> because
318 325
  there are potential loss of state issues otherwise.
319  
-</p></div></div><h2 id="g:8">Cloning Lenses
  326
+</p></div></div><h2 id="g:9">Cloning Lenses
320 327
 </h2><div class="top"><p class="src"><a name="v:cloneLens" class="def">cloneLens</a> ::  <a href="Control-Lens-Lens.html#t:ALens">ALens</a> s t a b -&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> s t a b<a href="src/Control-Lens-Lens.html#cloneLens" class="link">Source</a></p><div class="doc"><p>Cloning a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> is one way to make sure you aren't given
321 328
  something weaker, such as a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> and can be
322 329
  used as a way to pass around lenses that have to be monomorphic in <code>f</code>.
323 330
 </p><p>Note: This only accepts a proper <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>.
324 331
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>let example l x = set (cloneLens l) (x^.cloneLens l + 1) x in example _2 (&quot;hello&quot;,1,&quot;you&quot;)
325 332
 </code></strong>(&quot;hello&quot;,2,&quot;you&quot;)
326  
-</pre></div></div><h1 id="g:9">Context
  333
+</pre></div></div><h1 id="g:10">Context
327 334
 </h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Context" class="def">Context</a> a b t <a href="src/Control-Lens-Internal.html#Context" class="link">Source</a></p><div class="doc"><p>The indexed store can be used to characterize a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>
328 335
  and is used by <code><a href="Control-Lens-Lens.html#v:clone">clone</a></code>
329 336
 </p><p><code><code><a href="Control-Lens-Lens.html#t:Context">Context</a></code> a b t</code> is isomorphic to
330 337
  <code>newtype Context a b t = Context { runContext :: forall f. Functor f =&gt; (a -&gt; f b) -&gt; f t }</code>,
331 338
  and to <code>exists s. (s, <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b)</code>.
332 339
 </p><p>A <code><a href="Control-Lens-Lens.html#t:Context">Context</a></code> is like a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> that has already been applied to a some structure.
333  
-</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Context" class="def">Context</a> (b -&gt; t) a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Context" class="caption collapser" onclick="toggleSection('i:Context')">Instances</p><div id="section.i:Context" class="show"><table><tr><td class="src">~ * a b =&gt; ComonadStore a (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * a b =&gt; Comonad (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Context-39-" class="def">Context'</a> a = <a href="Control-Lens-Lens.html#t:Context">Context</a> a a<a href="src/Control-Lens-Internal.html#Context%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:Context-39-">Context'</a></code> a s = <code><a href="Control-Lens-Lens.html#t:Context">Context</a></code> a a s</pre></div></div><div class="top"><p class="src"><a name="v:locus" class="def">locus</a> :: ComonadStore a w =&gt; <a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a> (w s) a<a href="src/Control-Lens-Lens.html#locus" class="link">Source</a></p><div class="doc"><p>This <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> lets you <code>view</code> the current <code>pos</code> of any <code>Store</code>
334  
- <code>Comonad</code> and <code>seek</code> to a new position. This reduces the API
335  
- for working with a <code>ComonadStore</code> instances to a single <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>.
  340
+</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Context" class="def">Context</a> (b -&gt; t) a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Context" class="caption collapser" onclick="toggleSection('i:Context')">Instances</p><div id="section.i:Context" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal.html#t:Contextual">Contextual</a> <a href="Control-Lens-Lens.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:IndexedComonad">IndexedComonad</a> <a href="Control-Lens-Lens.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:IndexedFunctor">IndexedFunctor</a> <a href="Control-Lens-Lens.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:Sellable">Sellable</a> (-&gt;) <a href="Control-Lens-Lens.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * a b =&gt; ComonadStore a (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * a b =&gt; Comonad (<a href="Control-Lens-Lens.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Context-39-" class="def">Context'</a> a = <a href="Control-Lens-Lens.html#t:Context">Context</a> a a<a href="src/Control-Lens-Internal.html#Context%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Lens.html#t:Context-39-">Context'</a></code> a s = <code><a href="Control-Lens-Lens.html#t:Context">Context</a></code> a a s</pre></div></div><div class="top"><p class="src"><a name="v:locus" class="def">locus</a> :: <a href="Control-Lens-Internal.html#t:Contextual">Contextual</a> p =&gt; <a href="Control-Lens-Lens.html#t:Lens">Lens</a> (p a c s) (p b c s) a b<a href="src/Control-Lens-Lens.html#locus" class="link">Source</a></p><div class="doc"><p>This <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> lets you <code>view</code> the current <code>pos</code> of any indexed
  341
+ store comonad and <code>seek</code> to a new position. This reduces the API
  342
+ for working these instances to a single <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>.
336 343
 </p><pre>
337  
- <code>pos</code> w &#8801; w <code>^.</code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code>
338  
- <code>seek</code> s w &#8801; w <code><a href="Control-Lens-Combinators.html#v:-38-">&amp;</a></code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> <code>.~</code> s
339  
- <code>seeks</code> f w &#8801; w <code><a href="Control-Lens-Combinators.html#v:-38-">&amp;</a></code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> <code>%~</code> f
  344
+ <code><a href="Control-Lens-Internal.html#v:ipos">ipos</a></code> w &#8801; w <code>^.</code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code>
  345
+ <code><a href="Control-Lens-Internal.html#v:iseek">iseek</a></code> s w &#8801; w <code><a href="Control-Lens-Combinators.html#v:-38-">&amp;</a></code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> <code>.~</code> s
  346
+ <code><a href="Control-Lens-Internal.html#v:iseeks">iseeks</a></code> f w &#8801; w <code><a href="Control-Lens-Combinators.html#v:-38-">&amp;</a></code> <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> <code>%~</code> f
340 347
 </pre><pre>
341 348
  <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> :: <code><a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a></code> (<code><a href="Control-Lens-Lens.html#t:Context-39-">Context'</a></code> a s) a
  349
+ <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> :: <code><a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a></code> (<code><a href="Control-Lens-Internal.html#t:Pretext-39-">Pretext'</a></code> p a s) a
  350
+ <code><a href="Control-Lens-Lens.html#v:locus">locus</a></code> :: <code><a href="Control-Lens-Lens.html#t:Lens-39-">Lens'</a></code> (<code><a href="Control-Lens-Internal.html#t:PretextT-39-">PretextT'</a></code> p g a s) a
342 351
 </pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
8  Control-Lens-Loupe.html
@@ -6,12 +6,12 @@
6 6
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code> is a minimalist <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> suitable for storing in containers
7 7
  or returning monadically that can still be composed with other lenses.
8 8
 </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:Loupe">Loupe</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Context">Context</a> a b) s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:Loupe-39-">Loupe'</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a</li><li class="src short"><a href="#v:storing">storing</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; b -&gt; s -&gt; t</li><li class="src short"><a href="#v:-94--35-">(^#)</a> ::  s -&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; a</li><li class="src short"><a href="#v:-35--126-">(#~)</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; b -&gt; s -&gt; t</li><li class="src short"><a href="#v:-35--37--126-">(#%~)</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t</li><li class="src short"><a href="#v:-35--37--37--126-">(#%%~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:-60--35--126-">(&lt;#~)</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; b -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-60--35--37--126-">(&lt;#%~)</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; (a -&gt; b) -&gt; s -&gt; (b, t)</li><li class="src short"><a href="#v:-35--61-">(#=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-35--37--61-">(#%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; (a -&gt; b) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-35--37--37--61-">(#%%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; (a -&gt; (r, b)) -&gt; m r</li><li class="src short"><a href="#v:-60--35--61-">(&lt;#=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; b -&gt; m b</li><li class="src short"><a href="#v:-60--35--37--61-">(&lt;#%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; (a -&gt; b) -&gt; m b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleLoupe">SimpleLoupe</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a</li></ul></div><div id="interface"><h1 id="g:1">Lenses
9  
-</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe" class="def">Loupe</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Context">Context</a> a b) s t a b<a href="src/Control-Lens-Loupe.html#Loupe" class="link">Source</a></p><div class="doc"><p>A <code><code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code> s t a b</code> is almost a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>. It can be composed on the left of other lenses,
10  
- you can use <code>cloneLens</code> to promote it to a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, and it provides a minimalist lens-like
  9
+</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe" class="def">Loupe</a> s t a b = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Context">Context</a> a b) s t a b<a href="src/Control-Lens-Lens.html#Loupe" class="link">Source</a></p><div class="doc"><p>A <code><code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code> s t a b</code> is almost a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>. It can be composed on the left of other lenses,
  10
+ you can use <code><a href="Control-Lens-Lens.html#v:cloneLens">cloneLens</a></code> to promote it to a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, and it provides a minimalist lens-like
11 11
  interface. They can be used in an API where you need to pass around lenses inside containers
12 12
  or as monadic results. Unlike a <code>ReifiedLens</code> they can be composed and used directly, but
13 13
  they are slightly lower performance.
14  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe-39-" class="def">Loupe'</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a<a href="src/Control-Lens-Loupe.html#Loupe%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Loupe.html#t:Loupe-39-">Loupe'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code></pre></div></div><div class="top"><p class="src"><a name="v:storing" class="def">storing</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; b -&gt; s -&gt; t<a href="src/Control-Lens-Loupe.html#storing" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code>-specific version of <code><a href="Control-Lens-Setter.html#v:set">set</a></code>
  14
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Loupe-39-" class="def">Loupe'</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a<a href="src/Control-Lens-Lens.html#Loupe%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Loupe.html#t:Loupe-39-">Loupe'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code></pre></div></div><div class="top"><p class="src"><a name="v:storing" class="def">storing</a> ::  <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; b -&gt; s -&gt; t<a href="src/Control-Lens-Loupe.html#storing" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code>-specific version of <code><a href="Control-Lens-Setter.html#v:set">set</a></code>
15 15
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>storing _2 &quot;world&quot; (&quot;hello&quot;,&quot;there&quot;)
16 16
 </code></strong>(&quot;hello&quot;,&quot;world&quot;)
17 17
 </pre></div></div><div class="top"><p class="src"><a name="v:-94--35-" class="def">(^#)</a> ::  s -&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s t a b -&gt; a<a href="src/Control-Lens-Loupe.html#%5E%23" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code>-specific version of (<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>)
@@ -38,4 +38,4 @@
38 38
 </p></div></div><div class="top"><p class="src"><a name="v:-60--35--61-" class="def">(&lt;#=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; b -&gt; m b<a href="src/Control-Lens-Loupe.html#%3C%23%3D" class="link">Source</a></p><div class="doc"><p>Replace the target of a <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code> in the current monadic state, returning the new value.
39 39
 </p></div></div><div class="top"><p class="src"><a name="v:-60--35--37--61-" class="def">(&lt;#%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a b -&gt; (a -&gt; b) -&gt; m b<a href="src/Control-Lens-Loupe.html#%3C%23%25%3D" class="link">Source</a></p><div class="doc"><p>Modify the target of a <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code> into your monad's state by a user supplied function and return the result.
40 40
 </p></div></div><h1 id="g:2">Deprecated
41  
-</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SimpleLoupe" class="def">SimpleLoupe</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a<a href="src/Control-Lens-Loupe.html#SimpleLoupe" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Loupe.html#t:SimpleLoupe">SimpleLoupe</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code></pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
  41
+</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SimpleLoupe" class="def">SimpleLoupe</a> s a = <a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a> s s a a<a href="src/Control-Lens-Loupe.html#SimpleLoupe" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Loupe.html#t:SimpleLoupe">SimpleLoupe</a></code> = <code>Simple</code> <code><a href="Control-Lens-Loupe.html#t:Loupe">Loupe</a></code></pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
7  Control-Lens-Magma.html
... ...
@@ -0,0 +1,7 @@
  1
+<!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.Magma</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[
  2
+window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Magma.html");};
  3
+//]]>
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Magma.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-3.8: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Magma</p></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">data</span>  <a href="#t:Magma">Magma</a> i a<ul class="subs"><li>= <a href="#v:Ap">Ap</a> Size <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Last">Last</a> i) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a)  </li><li>| <a href="#v:Leaf">Leaf</a> i a  </li><li>| <a href="#v:Pure">Pure</a>  </li></ul></li><li class="src short"><a href="#v:size">size</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:magmaIns">magmaIns</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b t -&gt; <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a</li><li class="src short"><a href="#v:magmaOuts">magmaOuts</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b t -&gt; <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i b -&gt; t</li><li class="src short"><a href="#v:magma">magma</a> ::  <a href="Control-Lens-Traversal.html#t:AnIndexedTraversal">AnIndexedTraversal</a> i s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i b)</li><li class="src short"><a href="#v:nullLeft">nullLeft</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:nullRight">nullRight</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Magma" class="def">Magma</a> i a <a href="src/Control-Lens-Magma.html#Magma" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Ap" class="def">Ap</a> Size <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Last">Last</a> i) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Leaf" class="def">Leaf</a> i a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Pure" class="def">Pure</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Magma" class="caption collapser" onclick="toggleSection('i:Magma')">Instances</p><div id="section.i:Magma" class="show"><table><tr><td class="src"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> i, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a) =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a)</td><td class="doc"><p>This is an illegal <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code>.
  5
+</p></td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:size" class="def">size</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a><a href="src/Control-Lens-Magma.html#size" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:magmaIns" class="def">magmaIns</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b t -&gt; <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a<a href="src/Control-Lens-Magma.html#magmaIns" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:magmaOuts" class="def">magmaOuts</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i) a b t -&gt; <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i b -&gt; t<a href="src/Control-Lens-Magma.html#magmaOuts" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:magma" class="def">magma</a> ::  <a href="Control-Lens-Traversal.html#t:AnIndexedTraversal">AnIndexedTraversal</a> i s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a) (<a href="Control-Lens-Magma.html#t:Magma">Magma</a> i b)<a href="src/Control-Lens-Magma.html#magma" class="link">Source</a></p><div class="doc"><p>This is only a valid <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> if you don't change the shape of the <code><a href="Control-Lens-Magma.html#t:Magma">Magma</a></code>
  6
+</p><p>magma :: (Indexed i a (Bazaar (Indexed i) a b b) -&gt; s -&gt; Bazaar (Indexed i) a b t) -&gt; Lens s t (Magma i a) (Magma i b)
  7
+</p></div></div><div class="top"><p class="src"><a name="v:nullLeft" class="def">nullLeft</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-Magma.html#nullLeft" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:nullRight" class="def">nullRight</a> ::  <a href="Control-Lens-Magma.html#t:Magma">Magma</a> i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-Magma.html#nullRight" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
150  Control-Lens-Operators.html
62 additions, 88 deletions not shown
6  Control-Lens-Plated.html
@@ -29,7 +29,7 @@
29 29
 </p><p>It is often beneficial to use the combinators in this module with the combinators
30 30
  from <code>Data.Data.Lens</code> or <code>GHC.Generics.Lens</code> to make it easier to automatically
31 31
  derive definitions for <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>, or to derive custom traversals.
32  
-</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">class</span>  <a href="#t:Plated">Plated</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:plate">plate</a> :: <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> a a</li></ul></li><li class="src short"><a href="#v:children">children</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [a]</li><li class="src short"><a href="#v:rewrite">rewrite</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOf">rewriteOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOn">rewriteOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteOnOf">rewriteOnOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteM">rewriteM</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOf">rewriteMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOn">rewriteMOn</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:rewriteMOnOf">rewriteMOnOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:universe">universe</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [a]</li><li class="src short"><a href="#v:universeOf">universeOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] a b a b -&gt; a -&gt; [a]</li><li class="src short"><a href="#v:universeOn">universeOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a a -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:universeOnOf">universeOnOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] a b a b -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:transform">transform</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:transformOf">transformOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:transformOn">transformOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformOnOf">transformOnOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformM">transformM</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOf">transformMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOn">transformMOn</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:transformMOnOf">transformMOnOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s a a a -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m a</li><li class="src short"><a href="#v:contexts">contexts</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:contextsOf">contextsOf</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> a a -&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:contextsOn">contextsOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:contextsOnOf">contextsOnOf</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:holes">holes</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:holesOn">holesOn</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:holesOnOf">holesOnOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> r r) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> r r) a b r r -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> r r t]</li><li class="src short"><a href="#v:para">para</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r</li><li class="src short"><a href="#v:paraOf">paraOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> [a]) a b a b -&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r</li><li class="src short"><a href="#v:composOpFold">composOpFold</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; b -&gt; (b -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; a -&gt; b</li><li class="src short"><a href="#v:parts">parts</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a> a [a]</li></ul></div><div id="interface"><h1 id="g:1">Uniplate
  32
+</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">class</span>  <a href="#t:Plated">Plated</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:plate">plate</a> :: <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> a a</li></ul></li><li class="src short"><a href="#v:children">children</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [a]</li><li class="src short"><a href="#v:rewrite">rewrite</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOf">rewriteOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOn">rewriteOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteOnOf">rewriteOnOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteM">rewriteM</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOf">rewriteMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOn">rewriteMOn</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:rewriteMOnOf">rewriteMOnOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:universe">universe</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [a]</li><li class="src short"><a href="#v:universeOf">universeOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] a b a b -&gt; a -&gt; [a]</li><li class="src short"><a href="#v:universeOn">universeOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a a -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:universeOnOf">universeOnOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] a b a b -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:transform">transform</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:transformOf">transformOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:transformOn">transformOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformOnOf">transformOnOf</a> ::  <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformM">transformM</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOf">transformMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOn">transformMOn</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s t a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:transformMOnOf">transformMOnOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) s a a a -&gt; <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m a</li><li class="src short"><a href="#v:contexts">contexts</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:contextsOf">contextsOf</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> a a -&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:contextsOn">contextsOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:contextsOnOf">contextsOnOf</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:holes">holes</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]</li><li class="src short"><a href="#v:holesOn">holesOn</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]</li><li class="src short"><a href="#v:holesOnOf">holesOnOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (-&gt;) r r) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (-&gt;) r r) a b r r -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> r r t]</li><li class="src short"><a href="#v:para">para</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r</li><li class="src short"><a href="#v:paraOf">paraOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> [a]) a b a b -&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r</li><li class="src short"><a href="#v:composOpFold">composOpFold</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; b -&gt; (b -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; a -&gt; b</li><li class="src short"><a href="#v:parts">parts</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a> a [a]</li></ul></div><div id="interface"><h1 id="g:1">Uniplate
33 33
 </h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Plated" class="def">Plated</a> a  <span class="keyword">where</span><a href="src/Control-Lens-Plated.html#Plated" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> type is one where we know how to extract its immediate self-similar children.
34 34
 </p><p><em>Example 1</em>:
35 35
 </p><pre>
@@ -169,7 +169,7 @@
169 169
 </pre><pre><code><a href="Control-Lens-Plated.html#v:contextsOf">contextsOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> a a -&gt; a -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a]</pre></div></div><div class="top"><p class="src"><a name="v:contextsOn" class="def">contextsOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]<a href="src/Control-Lens-Plated.html#contextsOn" class="link">Source</a></p><div class="doc"><p>Return a list of all of the editable contexts for every location in the structure in an areas indicated by a user supplied <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, recursively using <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>.
170 170
 </p><pre><code><a href="Control-Lens-Plated.html#v:contextsOn">contextsOn</a></code> b &#8801; <code><a href="Control-Lens-Plated.html#v:contextsOnOf">contextsOnOf</a></code> b <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:contextsOn">contextsOn</a></code> :: <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a =&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]</pre></div></div><div class="top"><p class="src"><a name="v:contextsOnOf" class="def">contextsOnOf</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal">ATraversal</a> s t a a -&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> a a -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a t]<a href="src/Control-Lens-Plated.html#contextsOnOf" class="link">Source</a></p><div class="doc"><p>Return a list of all of the editable contexts for every location in the structure in an areas indicated by a user supplied <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, recursively using
171 171
  another user-supplied <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to walk each layer.
172  
-</p><pre><code><a href="Control-Lens-Plated.html#v:contextsOnOf">contextsOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> a a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]</pre></div></div><div class="top"><p class="src"><a name="v:holes" class="def">holes</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]<a href="src/Control-Lens-Plated.html#holes" class="link">Source</a></p><div class="doc"><p>The one-level version of <code>context</code>. This extracts a list of the immediate children as editable contexts.
  172
+</p><pre><code><a href="Control-Lens-Plated.html#v:contextsOnOf">contextsOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> a a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]</pre></div></div><div class="top"><p class="src"><a name="v:holes" class="def">holes</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> a a a]<a href="src/Control-Lens-Plated.html#holes" class="link">Source</a></p><div class="doc"><p>The one-level version of <code><a href="Control-Lens-Internal.html#v:context">context</a></code>. This extracts a list of the immediate children as editable contexts.
173 173
 </p><p>Given a context you can use <code>pos</code> to see the values, <code>peek</code> at what the structure would be like with an edited result, or simply <code>extract</code> the original structure.
174 174
 </p><pre>
175 175
  propChildren x = <code><a href="Control-Lens-Plated.html#v:children">children</a></code> l x <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#v:-61--61-">==</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:map">map</a></code> <code>pos</code> (<code><a href="Control-Lens-Plated.html#v:holes">holes</a></code> l x)
@@ -179,7 +179,7 @@
179 179
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a       -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
180 180
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
181 181
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
182  
-</pre></div></div><div class="top"><p class="src"><a name="v:holesOnOf" class="def">holesOnOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> r r) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> r r) a b r r -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> r r t]<a href="src/Control-Lens-Plated.html#holesOnOf" class="link">Source</a></p><div class="doc"><p>Extract one level of holes from a container in a region specified by one <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, using another.
  182
+</pre></div></div><div class="top"><p class="src"><a name="v:holesOnOf" class="def">holesOnOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (-&gt;) r r) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> (-&gt;) r r) a b r r -&gt; s -&gt; [<a href="Control-Lens-Internal.html#t:Context">Context</a> r r t]<a href="src/Control-Lens-Plated.html#holesOnOf" class="link">Source</a></p><div class="doc"><p>Extract one level of holes from a container in a region specified by one <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, using another.
183 183
 </p><pre><code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> b l &#8801; <code><a href="Control-Lens-Traversal.html#v:holesOf">holesOf</a></code> (b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> l)</pre><pre>
184 184
  <code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a       -&gt; <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> a a       -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
185 185
  <code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a      -&gt; <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> a a      -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
10  Control-Lens-Prism.html
@@ -5,8 +5,8 @@
5 5
 </a></li><li><a href="#g:2">Constructing Prisms
6 6
 </a></li><li><a href="#g:3">Consuming Prisms
7 7
 </a></li><li><a href="#g:4">Common Prisms
8  
-</a></li><li><a href="#g:5">Implementation details
9  
-</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Prism">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism-39-">Prism'</a> s a = <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:APrism">APrism</a> s t a b = <a href="Control-Lens-Internal.html#t:Market">Market</a> a b a (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) -&gt; <a href="Control-Lens-Internal.html#t:Market">Market</a> a b s (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:APrism-39-">APrism'</a> s a = <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Reviewing">Reviewing</a> s t a b = <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> <a href="Control-Lens-Internal.html#t:Review">Review</a> <a href="Control-Lens-Internal.html#t:Review">Review</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a> s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:Reviewing-39-">Reviewing'</a> s a = <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s s a a</li><li class="src short"><a href="#v:prism">prism</a> ::  (b -&gt; t) -&gt; (s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t a) -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s t a b</li><li class="src short"><a href="#v:prism-39-">prism'</a> ::  (a -&gt; s) -&gt; (s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="Control-Lens-Prism.html#t:Prism-39-">Prism'</a> s a</li><li class="src short"><a href="#v:clonePrism">clonePrism</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s t a b</li><li class="src short"><a href="#v:runPrism">runPrism</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; (b -&gt; t, s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t a)</li><li class="src short"><a href="#v:remit">remit</a> ::  <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; <a href="Control-Lens-Type.html#t:Getter">Getter</a> b t</li><li class="src short"><a href="#v:review">review</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; m t</li><li class="src short"><a href="#v:reviews">reviews</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; (t -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:reuse">reuse</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; m t</li><li class="src short"><a href="#v:reuses">reuses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; (t -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:outside">outside</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> (t -&gt; r) (s -&gt; r) (b -&gt; r) (a -&gt; r)</li><li class="src short"><a href="#v:aside">aside</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (e, s) (e, t) (e, a) (e, b)</li><li class="src short"><a href="#v:without">without</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:APrism">APrism</a> u v c d -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> s u) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t v) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a c) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b d)</li><li class="src short"><a href="#v:_left">_left</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a c) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b c) a b</li><li class="src short"><a href="#v:_right">_right</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c b) a b</li><li class="src short"><a href="#v:_just">_just</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) a b</li><li class="src short"><span class="keyword">class</span> <a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p =&gt; <a href="#t:Prismatic">Prismatic</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:prismatic">prismatic</a> ::  p a b -&gt; p (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b a) b</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Prisms
  8
+</a></li><li><a href="#g:5">Prismatic profunctors
  9
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Prism">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism-39-">Prism'</a> s a = <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:APrism">APrism</a> s t a b = <a href="Control-Lens-Internal.html#t:Market">Market</a> a b a (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) -&gt; <a href="Control-Lens-Internal.html#t:Market">Market</a> a b s (<a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:APrism-39-">APrism'</a> s a = <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Reviewing">Reviewing</a> s t a b = <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> <a href="Control-Lens-Internal.html#t:Review">Review</a> <a href="Control-Lens-Internal.html#t:Review">Review</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a> s t a b</li><li class="src short"><span class="keyword">type</span> <a href="#t:Reviewing-39-">Reviewing'</a> s a = <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s s a a</li><li class="src short"><a href="#v:prism">prism</a> ::  (b -&gt; t) -&gt; (s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t a) -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s t a b</li><li class="src short"><a href="#v:prism-39-">prism'</a> ::  (a -&gt; s) -&gt; (s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="Control-Lens-Prism.html#t:Prism-39-">Prism'</a> s a</li><li class="src short"><a href="#v:clonePrism">clonePrism</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> s t a b</li><li class="src short"><a href="#v:runPrism">runPrism</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; (b -&gt; t, s -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t a)</li><li class="src short"><a href="#v:remit">remit</a> ::  <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; <a href="Control-Lens-Type.html#t:Getter">Getter</a> b t</li><li class="src short"><a href="#v:review">review</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; m t</li><li class="src short"><a href="#v:reviews">reviews</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; (t -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:reuse">reuse</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; m t</li><li class="src short"><a href="#v:reuses">reuses</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> b m =&gt; <a href="Control-Lens-Prism.html#t:Reviewing">Reviewing</a> s t a b -&gt; (t -&gt; r) -&gt; m r</li><li class="src short"><a href="#v:outside">outside</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> (t -&gt; r) (s -&gt; r) (b -&gt; r) (a -&gt; r)</li><li class="src short"><a href="#v:aside">aside</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (e, s) (e, t) (e, a) (e, b)</li><li class="src short"><a href="#v:without">without</a> ::  <a href="Control-Lens-Prism.html#t:APrism">APrism</a> s t a b -&gt; <a href="Control-Lens-Prism.html#t:APrism">APrism</a> u v c d -&gt; <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> s u) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> t v) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a c) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b d)</li><li class="src short"><a href="#v:_left">_left</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a c) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b c) a b</li><li class="src short"><a href="#v:_right">_right</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c b) a b</li><li class="src short"><a href="#v:_just">_just</a> ::  <a href="Control-Lens-Prism.html#t:Prism">Prism</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> b) a b</li><li class="src short"><span class="keyword">class</span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p =&gt; <a href="#t:Prismatic">Prismatic</a> p  <span class="keyword">where</span><ul class="subs"><li><a href="#v:prismatic">prismatic</a> ::  p a b -&gt; p (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b a) b</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Prisms
10 10
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Prism" class="def">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Prism" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Prism.html#t:Prism">Prism</a></code> <code>l</code> is a 0-or-1 target <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> that can also be turned around with <code>remit</code> to
11 11
  obtain a <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> in the opposite direction.
12 12
 </p><p>There are two laws that a <code><a href="Control-Lens-Prism.html#t:Prism">Prism</a></code> should satisfy:
@@ -142,9 +142,9 @@
142 142
 </pre><p>Unlike <code>traverse</code> this is a <code><a href="Control-Lens-Prism.html#t:Prism">Prism</a></code>, and so you can use it to inject as well:
143 143
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>5^.remit _just
144 144
 </code></strong>Just 5
145  
-</pre></div></div><h1 id="g:5">Implementation details
146  
-</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p =&gt; <a name="t:Prismatic" class="def">Prismatic</a> p  <span class="keyword">where</span></p><div class="doc"><p>The generalization of <code><a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:DownStar">DownStar</a></code> of a &quot;Costrong&quot; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>
  145
+</pre></div></div><h1 id="g:5">Prismatic profunctors
  146
+</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p =&gt; <a name="t:Prismatic" class="def">Prismatic</a> p  <span class="keyword">where</span></p><div class="doc"><p>The generalization of <code><a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:DownStar">DownStar</a></code> of a &quot;Costrong&quot; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>
147 147
 </p><p><em>Note:</em> Here we use <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> as an approximate costrength.
148 148
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:prismatic" class="def">prismatic</a> ::  p a b -&gt; p (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b a) b</p></div><div class="subs instances"><p id="control.i:Prismatic" class="caption collapser" onclick="toggleSection('i:Prismatic')">Instances</p><div id="section.i:Prismatic" class="show"><table><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> Tagged</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> <a href="Control-Lens-Internal.html#t:Review">Review</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> w =&gt; <a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:DownStar">DownStar</a> w)</td><td class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:sequence">sequence</a></code> approximates <code>costrength</code>
149 149
 </p></td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Arrow.html#t:ArrowChoice">ArrowChoice</a> p =&gt; <a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:WrappedArrow">WrappedArrow</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> w =&gt; <a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (Cokleisli w)</td><td class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:sequence">sequence</a></code> approximates <code>costrength</code>
150  
-</p></td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="Control-Lens-Internal.html#t:Market">Market</a> a b)</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.10.0</p></div></body></html>
  150
+</p></td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="Control-Lens-Internal.html#t:Indexed">Indexed</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> (<a href="Control-Lens-Internal.html#t:Market">Market</a> a b)</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.10.0</p></div></body></html>
43  Control-Lens-Traversal.html
23 additions, 20 deletions not shown
4  Control-Lens-Tuple.html
@@ -23,7 +23,7 @@
23 23
  _1 :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> (a,b,c,d) (a',b,c,d) a a'
24 24
  ...
25 25
  _1 :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> (a,c,d,e,f,g,h,i) (a',b,c,d,e,f,g,h,i) a a'
26  
-</pre></div></div><div class="subs instances"><p id="control.i:Field1" class="caption collapser" onclick="toggleSection('i:Field1')">Instances</p><div id="section.i:Field1" class="show"><table><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b) (a', b) a a'</td><td class="doc"><pre><code><a href="Control-Lens-Tuple.html#v:_1">_1</a></code> k ~(a,b) = (a' -&gt; (a',b)) <code>&lt;$&gt;</code> k a</pre></td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c) (a', b, c) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d) (a', b, c, d) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e) (a', b, c, d, e) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f) (a', b, c, d, e, f) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g) (a', b, c, d, e, f, g) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g, h) (a', b, c, d, e, f, g, h) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g, h, i) (a', b, c, d, e, f, g, h, i) a a'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field2" class="def">Field2</a> s t a b | s -&gt; a, t -&gt; b, s b -&gt; t, t a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field2" class="link">Source</a></p><div class="doc"><p>Provides access to the 2nd field of a tuple
  26
+</pre></div></div><div class="subs instances"><p id="control.i:Field1" class="caption collapser" onclick="toggleSection('i:Field1')">Instances</p><div id="section.i:Field1" class="show"><table><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b) (a', b) a a'</td><td class="doc"><pre><code><a href="Control-Lens-Tuple.html#v:_1">_1</a></code> k ~(a,b) = (\a' -&gt; (a',b)) <code>&lt;$&gt;</code> k a</pre></td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c) (a', b, c) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d) (a', b, c, d) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e) (a', b, c, d, e) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f) (a', b, c, d, e, f) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g) (a', b, c, d, e, f, g) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g, h) (a', b, c, d, e, f, g, h) a a'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (a, b, c, d, e, f, g, h, i) (a', b, c, d, e, f, g, h, i) a a'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field2" class="def">Field2</a> s t a b | s -&gt; a, t -&gt; b, s b -&gt; t, t a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field2" class="link">Source</a></p><div class="doc"><p>Provides access to the 2nd field of a tuple
27 27
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:_2" class="def">_2</a> :: <a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> s t a b<a href="src/Control-Lens-Tuple.html#_2" class="link">Source</a></p><div class="doc"><p>Access the 2nd field of a tuple
28 28
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>_2 .~ &quot;hello&quot; $ (1,(),3,4)
29 29
 </code></strong>(1,&quot;hello&quot;,3,4)
@@ -36,7 +36,7 @@
36 36
  <code><a href="Control-Lens-Fold.html#v:anyOf">anyOf</a></code> <code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code> :: (s -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code>) -&gt; (a, s) -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code>
37 37
  <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:traverse">traverse</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code> :: (<code>Applicative</code> f, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#t:Traversable">Traversable</a></code> t) =&gt; (a -&gt; f b) -&gt; t (s, a) -&gt; f (t (s, b))
38 38
  <code><a href="Control-Lens-Fold.html#v:foldMapOf">foldMapOf</a></code> (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:traverse">traverse</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code>) :: (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#t:Traversable">Traversable</a></code> t, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> m) =&gt; (s -&gt; m) -&gt; t (b, s) -&gt; m
39  
-</pre></div></div><div class="subs instances"><p id="control.i:Field2" class="caption collapser" onclick="toggleSection('i:Field2')">Instances</p><div id="section.i:Field2" class="show"><table><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b) (a, b') b b'</td><td class="doc"><pre><code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code> k ~(a,b) = (b' -&gt; (a,b')) <code>&lt;$&gt;</code> k b</pre></td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c) (a, b', c) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d) (a, b', c, d) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e) (a, b', c, d, e) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f) (a, b', c, d, e, f) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g) (a, b', c, d, e, f, g) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g, h) (a, b', c, d, e, f, g, h) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g, h, i) (a, b', c, d, e, f, g, h, i) b b'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field3" class="def">Field3</a> s t a b | s -&gt; a, t -&gt; b, s b -&gt; t, t a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field3" class="link">Source</a></p><div class="doc"><p>Provides access to the 3rd field of a tuple
  39
+</pre></div></div><div class="subs instances"><p id="control.i:Field2" class="caption collapser" onclick="toggleSection('i:Field2')">Instances</p><div id="section.i:Field2" class="show"><table><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b) (a, b') b b'</td><td class="doc"><pre><code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code> k ~(a,b) = (\b' -&gt; (a,b')) <code>&lt;$&gt;</code> k b</pre></td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c) (a, b', c) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d) (a, b', c, d) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e) (a, b', c, d, e) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f) (a, b', c, d, e, f) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g) (a, b', c, d, e, f, g) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g, h) (a, b', c, d, e, f, g, h) b b'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field2">Field2</a> (a, b, c, d, e, f, g, h, i) (a, b', c, d, e, f, g, h, i) b b'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field3" class="def">Field3</a> s t a b | s -&gt; a, t -&gt; b, s b -&gt; t, t a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field3" class="link">Source</a></p><div class="doc"><p>Provides access to the 3rd field of a tuple
40 40
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:_3" class="def">_3</a> :: <a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> s t a b<a href="src/Control-Lens-Tuple.html#_3" class="link">Source</a></p><div class="doc"><p>Access the 3rd field of a tuple
41 41
 </p></div></div><div class="subs instances"><p id="control.i:Field3" class="caption collapser" onclick="toggleSection('i:Field3')">Instances</p><div id="section.i:Field3" class="show"><table><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c) (a, b, c') c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d) (a, b, c', d) c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d, e) (a, b, c', d, e) c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d, e, f) (a, b, c', d, e, f) c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d, e, f, g) (a, b, c', d, e, f, g) c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d, e, f, g, h) (a, b, c', d, e, f, g, h) c c'</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Tuple.html#t:Field3">Field3</a> (a, b, c, d, e, f, g, h, i) (a, b, c', d, e, f, g, h, i) c c'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field4" class="def">Field4</a> s t a b | s -&gt; a, t -&gt; b, s b -&gt; t, t a -&gt; s <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field4" class="link">Source</a></p><div class="doc"><p>Provide access to the 4th field of a tuple
42 42
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:_4" class="def">_4</a> :: <a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> s t a b<a href="src/Control-Lens-Tuple.html#_4" class="link">Source</a></p><div class="doc"><p>Access the 4th field of a tuple
24  Control-Lens-Type.html
@@ -3,8 +3,9 @@
3 3
 //]]>
4 4
 </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Type.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-3.8: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Type</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses, Folds and Traversals
5 5
 </a></li><li><a href="#g:2">Indexed Variants
6  
-</a></li><li><a href="#g:3">Common
7  
-</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Lens">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Lens-39-">Lens'</a> s a = <a href="Control-Lens-Type.html#t:Lens">Lens</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Traversal">Traversal</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Traversal-39-">Traversal'</a> s a = <a href="Control-Lens-Type.html#t:Traversal">Traversal</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso-39-">Iso'</a> s a = <a href="Control-Lens-Type.html#t:Iso">Iso</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism-39-">Prism'</a> s a = <a href="Control-Lens-Type.html#t:Prism">Prism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setter">Setter</a> s t a b = <span class="keyword">forall</span> f. <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setter-39-">Setter'</a> s a = <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Equality">Equality</a> s t a b = <span class="keyword">forall</span> p f.  p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Equality-39-">Equality'</a> s a = <a href="Control-Lens-Type.html#t:Equality">Equality</a> s s a a</li><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-Internal.html#t:Gettable">Gettable</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:Fold">Fold</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:Action">Action</a> m s a = <span class="keyword">forall</span> f r. <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; (a -&gt; f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:MonadicFold">MonadicFold</a> m s a = <span class="keyword">forall</span> f r. (<a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:IndexedLens">IndexedLens</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens-39-">IndexedLens'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedTraversal">IndexedTraversal</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedTraversal-39-">IndexedTraversal'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter-39-">IndexedSetter'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i s s a a</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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:IndexedFold">IndexedFold</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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:IndexedAction">IndexedAction</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f) =&gt; p a (f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedMonadicFold">IndexedMonadicFold</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:Simple">Simple</a> f s a = f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:LensLike">LensLike</a> f s t a b = (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:LensLike-39-">LensLike'</a> f s a = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLensLike">IndexedLensLike</a> p f s t a b = p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLensLike-39-">IndexedLensLike'</a> p f s a = p a (f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloading">Overloading</a> p q f s t a b = p a (f b) -&gt; q s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloading-39-">Overloading'</a> p q f s a = <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> p q f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloaded">Overloaded</a> p f s t a b = p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloaded-39-">Overloaded'</a> p f s a = <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> p f s s a a</li></ul></div><div id="interface"><h1 id="g:1">Lenses, Folds and Traversals
  6
+</a></li><li><a href="#g:3">Index-preservation
  7
+</a></li><li><a href="#g:4">Common
  8
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Lens">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Lens-39-">Lens'</a> s a = <a href="Control-Lens-Type.html#t:Lens">Lens</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Traversal">Traversal</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Traversal-39-">Traversal'</a> s a = <a href="Control-Lens-Type.html#t:Traversal">Traversal</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso-39-">Iso'</a> s a = <a href="Control-Lens-Type.html#t:Iso">Iso</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Prism-39-">Prism'</a> s a = <a href="Control-Lens-Type.html#t:Prism">Prism</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setter">Setter</a> s t a b = <span class="keyword">forall</span> f. <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setter-39-">Setter'</a> s a = <a href="Control-Lens-Type.html#t:Setter">Setter</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Equality">Equality</a> s t a b = <span class="keyword">forall</span> p f.  p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Equality-39-">Equality'</a> s a = <a href="Control-Lens-Type.html#t:Equality">Equality</a> s s a a</li><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-Internal.html#t:Gettable">Gettable</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:Fold">Fold</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:Action">Action</a> m s a = <span class="keyword">forall</span> f r. <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; (a -&gt; f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:MonadicFold">MonadicFold</a> m s a = <span class="keyword">forall</span> f r. (<a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:IndexedLens">IndexedLens</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLens-39-">IndexedLens'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedTraversal">IndexedTraversal</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedTraversal-39-">IndexedTraversal'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter-39-">IndexedSetter'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexPreservingSetter">IndexPreservingSetter</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; p s (f t)</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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:IndexPreservingGetter">IndexPreservingGetter</a> s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; p a (f a) -&gt; p s (f s)</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedFold">IndexedFold</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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:IndexPreservingFold">IndexPreservingFold</a> s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; p s (f s)</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedAction">IndexedAction</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f) =&gt; p a (f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexPreservingAction">IndexPreservingAction</a> m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f) =&gt; p a (f a) -&gt; p s (f s)</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedMonadicFold">IndexedMonadicFold</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</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:IndexPreservingMonadicFold">IndexPreservingMonadicFold</a> m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; p s (f s)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Simple">Simple</a> f s a = f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:LensLike">LensLike</a> f s t a b = (a -&gt; f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:LensLike-39-">LensLike'</a> f s a = <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLensLike">IndexedLensLike</a> p f s t a b = p a (f b) -&gt; s -&gt; f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedLensLike-39-">IndexedLensLike'</a> p f s a = p a (f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloading">Overloading</a> p q f s t a b = p a (f b) -&gt; q s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloading-39-">Overloading'</a> p q f s a = <a href="Control-Lens-Type.html#t:Overloading">Overloading</a> p q f s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloaded">Overloaded</a> p f s t a b = p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Overloaded-39-">Overloaded'</a> p f s a = <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> p f s s a a</li></ul></div><div id="interface"><h1 id="g:1">Lenses, Folds and Traversals
8 9
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Lens" class="def">Lens</a> s t a b = <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Type.html#Lens" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> is actually a lens family as described in
9 10
  <a href="http://comonad.com/reader/2012/mirrored-lenses/">http://comonad.com/reader/2012/mirrored-lenses/</a>.
10 11
 </p><p>With great power comes great responsibility and a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> is subject to the
@@ -41,7 +42,7 @@
41 42
  is that the caveat expressed in section 5.5 of the &quot;Essence of the Iterator Pattern&quot; about exotic
42 43
  <code>Traversable</code> instances that <code>traverse</code> the same entry multiple times was actually already ruled out by the
43 44
  second law in that same paper!
44  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Traversal-39-" class="def">Traversal'</a> s a = <a href="Control-Lens-Type.html#t:Traversal">Traversal</a> s s a a<a href="src/Control-Lens-Type.html#Traversal%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code></pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso" class="def">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="/Users/ekmett/Library/Haskell/ghc-7.4.1/lib/profunctors-3.1.1/doc/html/Data-Profunctor.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Iso" class="link">Source</a></p><div class="doc"><p>Isomorphism families can be composed with other lenses using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) and <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>.
  45
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Traversal-39-" class="def">Traversal'</a> s a = <a href="Control-Lens-Type.html#t:Traversal">Traversal</a> s s a a<a href="src/Control-Lens-Type.html#Traversal%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code></pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso" class="def">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Iso" class="link">Source</a></p><div class="doc"><p>Isomorphism families can be composed with other lenses using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) and <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>.
45 46
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Iso-39-" class="def">Iso'</a> s a = <a href="Control-Lens-Type.html#t:Iso">Iso</a> s s a a<a href="src/Control-Lens-Type.html#Iso%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code></pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Prism" class="def">Prism</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Prism.html#t:Prismatic">Prismatic</a> p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#Prism" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> <code>l</code> is a 0-or-1 target <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> that can also be turned around with <code>remit</code> to
46 47
  obtain a <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> in the opposite direction.
47 48
 </p><p>There are two laws that a <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code> should satisfy:
@@ -141,15 +142,26 @@
141 142
 </p><p>The <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> laws are still required to hold.
142 143
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedTraversal-39-" class="def">IndexedTraversal'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a> i s s a a<a href="src/Control-Lens-Type.html#IndexedTraversal%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:IndexedTraversal-39-">IndexedTraversal'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i)</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedSetter" class="def">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; s -&gt; f t<a href="src/Control-Lens-Type.html#IndexedSetter" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code> is a valid <code><a href="Control-Lens-Type.html#t:Setter">Setter</a></code>
143 144
 </p><p>The <code><a href="Control-Lens-Type.html#t:Setter">Setter</a></code> laws are still required to hold.
144  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedSetter-39-" class="def">IndexedSetter'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i s s a a<a href="src/Control-Lens-Type.html#IndexedSetter%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:IndexedSetter-39-">IndexedSetter'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code> i)</pre></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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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-Type.html#t:IndexedGetter">IndexedGetter</a></code> is a valid <code><a href="Control-Lens-Fold.html#t:IndexedFold">IndexedFold</a></code> and <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>.
145  
-</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedFold" class="def">IndexedFold</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; p a (f a) -&gt; s -&gt; f s<a href="src/Control-Lens-Type.html#IndexedFold" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> is a valid <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>.
  145
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedSetter-39-" class="def">IndexedSetter'</a> i s a = <a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a> i s s a a<a href="src/Control-Lens-Type.html#IndexedSetter%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Type.html#t:IndexedSetter-39-">IndexedSetter'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code> i)</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexPreservingSetter" class="def">IndexPreservingSetter</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; p s (f t)<a href="src/Control-Lens-Type.html#IndexPreservingSetter" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a></code> can be composed with a <code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code>
  146
+ and leaves the index intact, yielding an <code><a href="Control-Lens-Type.html#t:IndexedSetter">IndexedSetter</a></code>.
  147
+</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.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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-Type.html#t:IndexedGetter">IndexedGetter</a></code> is a valid <code><a href="Control-Lens-Fold.html#t:IndexedFold">IndexedFold</a></code> and can be used for <code>Getting</code> like a <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>.
  148
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexPreservingGetter" class="def">IndexPreservingGetter</a> s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; p a (f a) -&gt; p s (f s)<a href="src/Control-Lens-Type.html#IndexPreservingGetter" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexPreservingGetter">IndexPreservingGetter</a></code> can be used as a <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>, but when composed with an <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>,
  149
+ <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>, or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> yields an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedGetter">IndexedGetter</a></code> respectively.
  150
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedFold" class="def">IndexedFold</a> i s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; p a (f a) -&gt; s -&gt; f s<a href="src/Control-Lens-Type.html#IndexedFold" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> is a valid <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> and can be used for <code>Getting</code>.
  151
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexPreservingFold" class="def">IndexPreservingFold</a> s a = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; p s (f s)<a href="src/Control-Lens-Type.html#IndexPreservingFold" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexPreservingFold">IndexPreservingFold</a></code> can be used as a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>, but when composed with an <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>,
  152
+ <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>, or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> yields an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> respectively.
146 153
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedAction" class="def">IndexedAction</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f) =&gt; p a (f a) -&gt; s -&gt; f s<a href="src/Control-Lens-Type.html#IndexedAction" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexedAction">IndexedAction</a></code> is an <code><a href="Control-Lens-Type.html#t:IndexedGetter">IndexedGetter</a></code> enriched with access to a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a></code> for side-effects.
147 154
 </p><p>Every <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> can be used as an <code><a href="Control-Lens-Type.html#t:Action">Action</a></code>
148 155
 </p><p>You can compose an <code><a href="Control-Lens-Type.html#t:Action">Action</a></code> with another <code><a href="Control-Lens-Type.html#t:Action">Action</a></code> using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) from the <code>Prelude</code>.
  156
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexPreservingAction" class="def">IndexPreservingAction</a> m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f) =&gt; p a (f a) -&gt; p s (f s)<a href="src/Control-Lens-Type.html#IndexPreservingAction" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexPreservingAction">IndexPreservingAction</a></code> can be used as a <code><a href="Control-Lens-Type.html#t:Action">Action</a></code>, but when composed with an <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>,
  157
+ <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>, or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> yields an <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedAction">IndexedAction</a></code> respectively.
149 158
 </p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedMonadicFold" class="def">IndexedMonadicFold</a> i m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; s -&gt; f s<a href="src/Control-Lens-Type.html#IndexedMonadicFold" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code> is an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> enriched with access to a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a></code> for side-effects.
150 159
 </p><p>Every <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> can be used as an <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code>, that simply ignores the access to the <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a></code>.
151 160
 </p><p>You can compose an <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code> with another <code><a href="Control-Lens-Type.html#t:IndexedMonadicFold">IndexedMonadicFold</a></code> using (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code>) from the <code>Prelude</code>.
152  
-</p></div></div><h1 id="g:3">Common
  161
+</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexPreservingMonadicFold" class="def">IndexPreservingMonadicFold</a> m s a = <span class="keyword">forall</span> p f r. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; p s (f s)<a href="src/Control-Lens-Type.html#IndexPreservingMonadicFold" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Type.html#t:IndexPreservingFold">IndexPreservingFold</a></code> can be used as a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code>, but when composed with an <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>,
  162
+ <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code>, or <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> yields an <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> respectively.
  163
+</p></div></div><h1 id="g:3">Index-preservation
  164
+</h1><h1 id="g:4">Common
153 165
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Simple" class="def">Simple</a> f s a = f s s a a<a href="src/Control-Lens-Type.html#Simple" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, ... can
154 166
  be used instead of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>,<code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>, ...
155 167
  whenever the type variables don't change upon setting a value.
83  Control-Lens-Zipper-Internal.html
38 additions, 45 deletions not shown
59  Control-Lens-Zipper.html
@@ -28,11 +28,11 @@
28 28
 </pre><p>This is particularly powerful when compiled with <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>,
29 29
  <code><a href="Data-Data-Lens.html#v:uniplate">uniplate</a></code> or <code><a href="Data-Data-Lens.html#v:biplate">biplate</a></code> for walking down into
30 30
  self-similar children in syntax trees and other structures.
31  
-</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">data</span>  <a href="#t:Top">Top</a> </li><li class="src short"><span class="keyword">data</span>  h <a href="#t::-62-">:&gt;</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Zipper">Zipper</a> = <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a></li><li class="src short"><a href="#v:zipper">zipper</a> ::  a -&gt; <a href="Control-Lens-Zipper.html#t:Top">Top</a> <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a</li><li class="src short"><a href="#v:focus">focus</a> ::  <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> (<a href="Control-Lens-Zipper.html#t:Tape">Tape</a> (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)) (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) a</li><li class="src short"><a href="#v:focusedContext">focusedContext</a> :: <a href="Control-Lens-Zipper.html#t:Zipping">Zipping</a> h a =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Internal.html#t:Context">Context</a> a a (<a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a)</li><li class="src short"><a href="#v:upward">upward</a> ::  ((h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s</li><li class="src short"><a href="#v:downward">downward</a> ::  <a href="Control-Lens-Lens.html#t:ALens-39-">ALens'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a</li><li class="src short"><a href="#v:within">within</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) -&gt; m ((h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:withins">withins</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) -&gt; [(h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a]</li><li class="src short"><a href="#v:leftward">leftward</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:rightward">rightward</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:leftmost">leftmost</a> ::  (a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> b) -&gt; a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> b</li><li class="src short"><a href="#v:rightmost">rightmost</a> ::  (a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> b) -&gt; a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> b</li><li class="src short"><a href="#v:tug">tug</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:tugs">tugs</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; a</li><li class="src short"><a href="#v:jerks">jerks</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; m a</li><li class="src short"><a href="#v:farthest">farthest</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:tooth">tooth</a> ::  (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:teeth">teeth</a> ::  (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:jerkTo">jerkTo</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:tugTo">tugTo</a> ::  <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a</li><li class="src short"><a href="#v:rezip">rezip</a> :: <a href="Control-Lens-Zipper.html#t:Zipping">Zipping</a> h a =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a</li><li class="src short"><span class="keyword">type family</span> <a href="#t:Zipped">Zipped</a> h a </li><li class="src short"><span class="keyword">class</span>  <a href="#t:Zipping">Zipping</a> h a </li><li class="src short"><span class="keyword">data</span>  <a href="#t:Tape">Tape</a> k</li><li class="src short"><a href="#v:saveTape">saveTape</a> ::  (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:restoreTape">restoreTape</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:restoreNearTape">restoreNearTape</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a)</li><li class="src short"><a href="#v:fromWithin">fromWithin</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> s) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a</li><li class="src short"><a href="#v:unsafelyRestoreTape">unsafelyRestoreTape</a> ::  <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a) -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> a</li></ul></div><div id="interface"><h1 id="g:1">Zippers
  31
+</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">data</span>  <a href="#t:Top">Top</a> </li><li class="src short"><span class="keyword">type family</span> h <a href="#t::-62-">:&gt;</a> p </li><li class="src short"><span class="keyword">data</span>  <a href="#t:Zipper">Zipper</a> h i a</li><li class="src short"><a href="#v:zipper">zipper</a> ::  a -&gt; <a href="Control-Lens-Zipper.html#t:Top">Top</a> <a href="Control-Lens-Zipper-Internal.html#t::-62--62-">:&gt;&gt;</a> a</li><li class="src short"><a href="#v:focus">focus</a> ::  <a href="Control-Lens-Type.html#t:IndexedLens-39-">IndexedLens'</a> i (<a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a) a</li><li class="src short"><a href="#v:focusedContext">focusedContext</a> :: (<a href="Control-Lens-Internal.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Zipper.html#t:Zipping">Zipping</a> h a) =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; <a href="Control-Lens-Internal.html#t:Pretext">Pretext</a> p a a (<a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a)</li><li class="src short"><a href="#v:upward">upward</a> ::  ((h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)</li><li class="src short"><a href="#v:downward">downward</a> ::  <a href="Control-Lens-Lens.html#t:ALens-39-">ALens'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) <a href="Control-Lens-Zipper-Internal.html#t::-62--62-">:&gt;&gt;</a> a</li><li class="src short"><a href="#v:within">within</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) -&gt; m ((h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) <a href="Control-Lens-Zipper-Internal.html#t::-62--62-">:&gt;&gt;</a> a)</li><li class="src short"><a href="#v:withins">withins</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) -&gt; m ((h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) <a href="Control-Lens-Zipper-Internal.html#t::-62--62-">:&gt;&gt;</a> a)</li><li class="src short"><a href="#v:leftward">leftward</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i))</li><li class="src short"><a href="#v:rightward">rightward</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i))</li><li class="src short"><a href="#v:leftmost">leftmost</a> ::  (a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (b <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (b <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)</li><li class="src short"><a href="#v:rightmost">rightmost</a> ::  (a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (b <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; a <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (b <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)</li><li class="src short"><a href="#v:tug">tug</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:tugs">tugs</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; a</li><li class="src short"><a href="#v:jerks">jerks</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m a) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; a -&gt; m a</li><li class="src short"><a href="#v:farthest">farthest</a> ::  (a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:tooth">tooth</a> ::  <a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:teeth">teeth</a> ::  (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:jerkTo">jerkTo</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; m (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i))</li><li class="src short"><a href="#v:tugTo">tugTo</a> ::  <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)</li><li class="src short"><a href="#v:rezip">rezip</a> :: <a href="Control-Lens-Zipper.html#t:Zipping">Zipping</a> h a =&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (a <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> i)) -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a</li><li class="src short"><span class="keyword">type family</span> <a href="#t:Zipped">Zipped</a> h a </li><li class="src short"><span class="keyword">class</span>  <a href="#t:Zipping">Zipping</a> h a </li><li class="src short"><span class="keyword">data</span>  <a href="#t:Tape">Tape</a> h i a</li><li class="src short"><a href="#v:saveTape">saveTape</a> ::  <a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a -&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> h i a</li><li class="src short"><a href="#v:restoreTape">restoreTape</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> h i a -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; m (<a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a)</li><li class="src short"><a href="#v:restoreNearTape">restoreNearTape</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> h i a -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; m (<a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a)</li><li class="src short"><a href="#v:fromWithin">fromWithin</a> ::  <a href="Control-Lens-Traversal.html#t:ATraversal-39-">ATraversal'</a> s a -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) -&gt; (h <a href="Control-Lens-Zipper.html#t::-62-">:&gt;</a> (s <a href="Control-Lens-Zipper-Internal.html#t::-64-">:@</a> j)) <a href="Control-Lens-Zipper-Internal.html#t::-62--62-">:&gt;&gt;</a> a</li><li class="src short"><a href="#v:unsafelyRestoreTape">unsafelyRestoreTape</a> ::  <a href="Control-Lens-Zipper.html#t:Tape">Tape</a> h i a -&gt; <a href="Control-Lens-Zipper.html#t:Zipped">Zipped</a> h a -&gt; <a href="Control-Lens-Zipper.html#t:Zipper">Zipper</a> h i a</li></ul></div><div id="interface"><h1 id="g:1">Zippers