Skip to content
This repository
Browse code

evil

  • Loading branch information...
commit 51c05abe8a34a0b0691fa7db80aa095934e6e82e 1 parent edf37c0
Edward Kmett authored November 22, 2012

Showing 99 changed files with 438 additions and 449 deletions. Show diff stats Hide diff stats

  1. 2  Control-Exception-Lens.html
  2. 2  Control-Lens-Action.html
  3. 2  Control-Lens-Combinators.html
  4. 43  Control-Lens-Fold.html
  5. 40  Control-Lens-Getter.html
  6. 4  Control-Lens-Indexed.html
  7. 50  Control-Lens-IndexedFold.html
  8. 2  Control-Lens-IndexedGetter.html
  9. 4  Control-Lens-IndexedLens.html
  10. 2  Control-Lens-IndexedSetter.html
  11. 10  Control-Lens-IndexedTraversal.html
  12. 104  Control-Lens-Internal.html
  13. 64  Control-Lens-Iso.html
  14. 2  Control-Lens-Isomorphic.html
  15. 2  Control-Lens-Loupe.html
  16. 92  Control-Lens-Plated.html
  17. 2  Control-Lens-Projection.html
  18. 2  Control-Lens-Representable.html
  19. 2  Control-Lens-Setter.html
  20. 2  Control-Lens-Simple.html
  21. 2  Control-Lens-TH.html
  22. 85  Control-Lens-Traversal.html
  23. 2  Control-Lens-Tuple.html
  24. 2  Control-Lens-Type.html
  25. 2  Control-Lens-WithIndex.html
  26. 34  Control-Lens-Zipper.html
  27. 2  Control-Lens-Zoom.html
  28. 4  Control-Lens.html
  29. 2  Control-Parallel-Strategies-Lens.html
  30. 4  Control-Seq-Lens.html
  31. 2  Data-Array-Lens.html
  32. 2  Data-Bits-Lens.html
  33. 2  Data-ByteString-Lazy-Lens.html
  34. 2  Data-ByteString-Lens.html
  35. 2  Data-ByteString-Strict-Lens.html
  36. 2  Data-Complex-Lens.html
  37. 2  Data-Data-Lens.html
  38. 2  Data-Dynamic-Lens.html
  39. 2  Data-HashSet-Lens.html
  40. 2  Data-IntSet-Lens.html
  41. 42  Data-List-Lens.html
  42. 26  Data-List-Split-Lens.html
  43. 23  Data-Monoid-Lens.html
  44. 10  Data-Sequence-Lens.html
  45. 2  Data-Set-Lens.html
  46. 2  Data-Text-Lazy-Lens.html
  47. 2  Data-Text-Lens.html
  48. 2  Data-Text-Strict-Lens.html
  49. 2  Data-Tree-Lens.html
  50. 2  Data-Typeable-Lens.html
  51. 6  Data-Vector-Generic-Lens.html
  52. 6  Data-Vector-Lens.html
  53. 2  GHC-Generics-Lens.html
  54. 2  Language-Haskell-TH-Lens.html
  55. 2  System-FilePath-Lens.html
  56. 4  doc-index-124.html
  57. 4  doc-index-35.html
  58. 4  doc-index-37.html
  59. 4  doc-index-38.html
  60. 4  doc-index-42.html
  61. 4  doc-index-43.html
  62. 4  doc-index-45.html
  63. 4  doc-index-46.html
  64. 4  doc-index-47.html
  65. 4  doc-index-58.html
  66. 4  doc-index-60.html
  67. 4  doc-index-63.html
  68. 4  doc-index-94.html
  69. 4  doc-index-95.html
  70. 4  doc-index-A.html
  71. 4  doc-index-All.html
  72. 4  doc-index-B.html
  73. 4  doc-index-C.html
  74. 4  doc-index-D.html
  75. 4  doc-index-E.html
  76. 4  doc-index-F.html
  77. 4  doc-index-G.html
  78. 4  doc-index-H.html
  79. 4  doc-index-I.html
  80. 4  doc-index-K.html
  81. 4  doc-index-L.html
  82. 4  doc-index-M.html
  83. 4  doc-index-N.html
  84. 4  doc-index-O.html
  85. 4  doc-index-P.html
  86. 4  doc-index-Q.html
  87. 4  doc-index-R.html
  88. 4  doc-index-S.html
  89. 4  doc-index-T.html
  90. 4  doc-index-U.html
  91. 4  doc-index-V.html
  92. 4  doc-index-W.html
  93. 4  doc-index-Z.html
  94. 4  doc-index.html
  95. 2  index-frames.html
  96. 4  index.html
  97. BIN  lens.haddock
  98. 2  mini_Control-Lens-Fold.html
2  Control-Exception-Lens.html
... ...
@@ -1,7 +1,7 @@
1 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.Exception.Lens</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Exception-Lens.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Exception-Lens.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Control.Exception</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-Inferred</td></tr></table><p class="caption">Control.Exception.Lens</p></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:exception">exception</a> :: (Exception a, Exception b) =&gt; <a href="Control-Lens-Projection.html#t:Projection">Projection</a> SomeException SomeException a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:exception" class="def">exception</a> :: (Exception a, Exception b) =&gt; <a href="Control-Lens-Projection.html#t:Projection">Projection</a> SomeException SomeException a b<a href="src/Control-Exception-Lens.html#exception" class="link">Source</a></p><div class="doc"><p>Traverse the strongly typed <code>Exception</code> contained in <code>SomeException</code> where the type of your function matches
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Exception-Lens.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Control.Exception</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-Inferred</td></tr></table><p class="caption">Control.Exception.Lens</p></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:exception">exception</a> :: (Exception a, Exception b) =&gt; <a href="Control-Lens-Projection.html#t:Projection">Projection</a> SomeException SomeException a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:exception" class="def">exception</a> :: (Exception a, Exception b) =&gt; <a href="Control-Lens-Projection.html#t:Projection">Projection</a> SomeException SomeException a b<a href="src/Control-Exception-Lens.html#exception" class="link">Source</a></p><div class="doc"><p>Traverse the strongly typed <code>Exception</code> contained in <code>SomeException</code> where the type of your function matches
5 5
  the desired <code>Exception</code>.
6 6
 </p><pre>
7 7
  exception :: (<code>Applicative</code> f, <code>Exception</code> a, <code>Exception</code> b)
2  Control-Lens-Action.html
... ...
@@ -1,7 +1,7 @@
1 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.Action</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Action.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Action.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>MTPCs, FDs, Rank2</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>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.Action</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Composable Actions
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Action.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>MTPCs, FDs, Rank2</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>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.Action</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Composable Actions
5 5
 </a></li><li><a href="#g:2">Folds with Effecs
6 6
 </a></li><li><a href="#g:3">Implementation Details
7 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: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"><a href="#v:act">act</a> :: Monad m =&gt; (s -&gt; m a) -&gt; <a href="Control-Lens-Action.html#t:Action">Action</a> m s a</li><li class="src short"><a href="#v:acts">acts</a> ::  <a href="Control-Lens-Action.html#t:Action">Action</a> m (m a) a</li><li class="src short"><a href="#v:perform">perform</a> :: Monad m =&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m a s t a b -&gt; s -&gt; m a</li><li class="src short"><a href="#v:performs">performs</a> :: Monad m =&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m e s t a b -&gt; (a -&gt; e) -&gt; s -&gt; m e</li><li class="src short"><a href="#v:liftAct">liftAct</a> :: (MonadTrans trans, Monad m) =&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m a s t a b -&gt; <a href="Control-Lens-Action.html#t:Action">Action</a> (trans m) s a</li><li class="src short"><a href="#v:-94--33-">(^!)</a> :: Monad m =&gt; s -&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m a s t a b -&gt; m a</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, Applicative f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s</li><li class="src short"><span class="keyword">type</span> <a href="#t:Acting">Acting</a> m r s t a b = (a -&gt; <a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r b) -&gt; s -&gt; <a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r t</li></ul></div><div id="interface"><h1 id="g:1">Composable Actions
2  Control-Lens-Combinators.html
... ...
@@ -1,7 +1,7 @@
1 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.Combinators</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Combinators.html");};
3 3
 //]]>
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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Combinators</p></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:-60--36--33--62-">(&lt;$!&gt;)</a> :: Monad m =&gt; (a -&gt; b) -&gt; m a -&gt; m b</li><li class="src short"><a href="#v:-60--36--33-">(&lt;$!)</a> :: Monad m =&gt; b -&gt; m a -&gt; m b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:-60--36--33--62-" class="def">(&lt;$!&gt;)</a> :: Monad 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="Data-Functor.html#t:-60--36--62-">&lt;$&gt;</a></code>) for monads.
  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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Combinators</p></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:-60--36--33--62-">(&lt;$!&gt;)</a> :: Monad m =&gt; (a -&gt; b) -&gt; m a -&gt; m b</li><li class="src short"><a href="#v:-60--36--33-">(&lt;$!)</a> :: Monad m =&gt; b -&gt; m a -&gt; m b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:-60--36--33--62-" class="def">(&lt;$!&gt;)</a> :: Monad 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="Data-Functor.html#t:-60--36--62-">&lt;$&gt;</a></code>) for monads.
5 5
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(+1) &lt;$!&gt; [1,2,3,4]
6 6
 </code></strong>[2,3,4,5]
7 7
 </pre></div></div><div class="top"><p class="src"><a name="v:-60--36--33-" class="def">(&lt;$!)</a> :: Monad 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="Data-Functor.html#t:-60--36-">&lt;$</a></code>) for monads.
43  Control-Lens-Fold.html
... ...
@@ -1,7 +1,7 @@
1 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.Fold</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Fold.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Fold.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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Fold</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Folds
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Fold.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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Fold</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Folds
5 5
 </a><ul><li><a href="#g:2">Building Folds
6 6
 </a></li><li><a href="#g:3">Folding
7 7
 </a></li></ul></li><li><a href="#g:4">Storing Folds
@@ -19,7 +19,7 @@
19 19
  <code>Applicative</code> transformers.
20 20
 </p><p>Everything you can do with a <code>Foldable</code> container, you can with with a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> and there are
21 21
  combinators that generalize the usual <code>Foldable</code> operations here.
22  
-</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:Fold">Fold</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s</li><li class="src short"><a href="#v:-94--63-">(^?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; Maybe 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:folding">folding</a> :: (Foldable f, Applicative g, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> g) =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> g s t a b</li><li class="src short"><a href="#v:folded">folded</a> :: Foldable f =&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> (f a) a</li><li class="src short"><a href="#v:unfolded">unfolded</a> ::  (b -&gt; Maybe (a, b)) -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> b a</li><li class="src short"><a href="#v:iterated">iterated</a> ::  (a -&gt; a) -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:filtered">filtered</a> :: Applicative f =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> f a a</li><li class="src short"><a href="#v:backwards">backwards</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (Backwards f) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b</li><li class="src short"><a href="#v:repeated">repeated</a> ::  <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:replicated">replicated</a> ::  Int -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:cycled">cycled</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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</li><li class="src short"><a href="#v:takingWhile">takingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f s)) s s a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><a href="#v:droppingWhile">droppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f s, f s)) s s a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><a href="#v:foldMapOf">foldMapOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldOf">foldOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldrOf">foldrOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo r) s t a b -&gt; (a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldlOf">foldlOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo r)) s t a b -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:toListOf">toListOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:anyOf">anyOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:allOf">allOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:andOf">andOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t Bool b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:orOf">orOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t Bool b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:productOf">productOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Product a) s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:sumOf">sumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Sum a) s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:traverseOf_">traverseOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:forOf_">forOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; s -&gt; (a -&gt; f r) -&gt; f ()</li><li class="src short"><a href="#v:sequenceAOf_">sequenceAOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t (f ()) b -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:mapMOf_">mapMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:forMOf_">forMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; s -&gt; (a -&gt; m r) -&gt; m ()</li><li class="src short"><a href="#v:sequenceOf_">sequenceOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t (m a) b -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:asumOf">asumOf</a> :: Alternative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f a)) s t (f a) b -&gt; s -&gt; f a</li><li class="src short"><a href="#v:msumOf">msumOf</a> :: MonadPlus m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (m a)) s t (m a) b -&gt; s -&gt; m a</li><li class="src short"><a href="#v:concatMapOf">concatMapOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [r] s t a b -&gt; (a -&gt; [r]) -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:concatOf">concatOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [r] s t [r] b -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:elemOf">elemOf</a> :: Eq a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t a b -&gt; a -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:notElemOf">notElemOf</a> :: Eq a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; a -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:lengthOf">lengthOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Sum Int) s t a b -&gt; s -&gt; Int</li><li class="src short"><a href="#v:nullOf">nullOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:headOf">headOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:lastOf">lastOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Last a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:maximumOf">maximumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Max">Max</a> a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:minimumOf">minimumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Min">Min</a> a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:maximumByOf">maximumByOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; Ordering) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:minimumByOf">minimumByOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; Ordering) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:findOf">findOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:foldrOf-39-">foldrOf'</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (r -&gt; r))) s t a b -&gt; (a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldlOf-39-">foldlOf'</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (r -&gt; r)) s t a b -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldr1Of">foldr1Of</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; a) -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldl1Of">foldl1Of</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (Maybe a))) s t a b -&gt; (a -&gt; a -&gt; a) -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldrMOf">foldrMOf</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (r -&gt; m r))) s t a b -&gt; (a -&gt; r -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:foldlMOf">foldlMOf</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (r -&gt; m r)) s t a b -&gt; (r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedFold">ReifiedFold</a> s a = <a href="#v:ReifyFold">ReifyFold</a> {<ul class="subs"><li><a href="#v:reflectFold">reflectFold</a> :: <a href="Control-Lens-Fold.html#t:Fold">Fold</a> s a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Folds
  22
+</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:Fold">Fold</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s</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:-94--63-">(^?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; Maybe a</li><li class="src short"><a href="#v:-94--63--33-">(^?!)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; a</li><li class="src short"><a href="#v:-94--33--63-">(^!?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; a</li><li class="src short"><a href="#v:folding">folding</a> :: (Foldable f, Applicative g, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> g) =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> g s t a b</li><li class="src short"><a href="#v:folded">folded</a> :: Foldable f =&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> (f a) a</li><li class="src short"><a href="#v:unfolded">unfolded</a> ::  (b -&gt; Maybe (a, b)) -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> b a</li><li class="src short"><a href="#v:iterated">iterated</a> ::  (a -&gt; a) -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:filtered">filtered</a> :: Applicative f =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> f a a</li><li class="src short"><a href="#v:backwards">backwards</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (Backwards f) s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b</li><li class="src short"><a href="#v:repeated">repeated</a> ::  <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:replicated">replicated</a> ::  Int -&gt; <a href="Control-Lens-Fold.html#t:Fold">Fold</a> a a</li><li class="src short"><a href="#v:cycled">cycled</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</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</li><li class="src short"><a href="#v:takingWhile">takingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f s)) s s a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><a href="#v:droppingWhile">droppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; Bool) -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f s, f s)) s s a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s s a a</li><li class="src short"><a href="#v:foldMapOf">foldMapOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldOf">foldOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldrOf">foldrOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo r) s t a b -&gt; (a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldlOf">foldlOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo r)) s t a b -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:toListOf">toListOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo [a]) s t a b -&gt; s -&gt; [a]</li><li class="src short"><a href="#v:anyOf">anyOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:allOf">allOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:andOf">andOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t Bool b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:orOf">orOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t Bool b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:productOf">productOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Product a) s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:sumOf">sumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Sum a) s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:traverseOf_">traverseOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:forOf_">forOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; s -&gt; (a -&gt; f r) -&gt; f ()</li><li class="src short"><a href="#v:sequenceAOf_">sequenceAOf_</a> :: Functor f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t (f ()) b -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:mapMOf_">mapMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:forMOf_">forMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; s -&gt; (a -&gt; m r) -&gt; m ()</li><li class="src short"><a href="#v:sequenceOf_">sequenceOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t (m a) b -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:asumOf">asumOf</a> :: Alternative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (f a)) s t (f a) b -&gt; s -&gt; f a</li><li class="src short"><a href="#v:msumOf">msumOf</a> :: MonadPlus m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (m a)) s t (m a) b -&gt; s -&gt; m a</li><li class="src short"><a href="#v:concatMapOf">concatMapOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [r] s t a b -&gt; (a -&gt; [r]) -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:concatOf">concatOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [r] s t [r] b -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:elemOf">elemOf</a> :: Eq a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> Any s t a b -&gt; a -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:notElemOf">notElemOf</a> :: Eq a =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; a -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:lengthOf">lengthOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Sum Int) s t a b -&gt; s -&gt; Int</li><li class="src short"><a href="#v:nullOf">nullOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> All s t a b -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:headOf">headOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:lastOf">lastOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Last a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:maximumOf">maximumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Max">Max</a> a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:minimumOf">minimumOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Min">Min</a> a) s t a b -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:maximumByOf">maximumByOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; Ordering) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:minimumByOf">minimumByOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; Ordering) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:findOf">findOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; (a -&gt; Bool) -&gt; s -&gt; Maybe a</li><li class="src short"><a href="#v:foldrOf-39-">foldrOf'</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (r -&gt; r))) s t a b -&gt; (a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldlOf-39-">foldlOf'</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (r -&gt; r)) s t a b -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:foldr1Of">foldr1Of</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (Maybe a)) s t a b -&gt; (a -&gt; a -&gt; a) -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldl1Of">foldl1Of</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (Maybe a))) s t a b -&gt; (a -&gt; a -&gt; a) -&gt; s -&gt; a</li><li class="src short"><a href="#v:foldrMOf">foldrMOf</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Dual (Endo (r -&gt; m r))) s t a b -&gt; (a -&gt; r -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:foldlMOf">foldlMOf</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo (r -&gt; m r)) s t a b -&gt; (r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedFold">ReifiedFold</a> s a = <a href="#v:ReifyFold">ReifyFold</a> {<ul class="subs"><li><a href="#v:reflectFold">reflectFold</a> :: <a href="Control-Lens-Fold.html#t:Fold">Fold</a> s a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Folds
23 23
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Fold" class="def">Fold</a> s a = <span class="keyword">forall</span> f. (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f) =&gt; (a -&gt; f a) -&gt; s -&gt; f s<a href="src/Control-Lens-Fold.html#Fold" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> describes how to retrieve multiple values in a way that can be composed
24 24
  with other lens-like constructions.
25 25
 </p><p>A <code><code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a</code> provides a structure with operations very similar to those of the <code>Foldable</code>
@@ -29,17 +29,7 @@
29 29
 </p><p>A <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> is a legal <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> that just ignores the supplied <code>Monoid</code>
30 30
 </p><p>Unlike a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> is read-only. Since a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> cannot be used to write back
31 31
  there are no lens laws that apply.
32  
-</p></div></div><div class="top"><p class="src"><a name="v:-94--63-" class="def">(^?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; Maybe a<a href="src/Control-Lens-Fold.html#%5E%3F" class="link">Source</a></p><div class="doc"><p>Perform a safe <code>head</code> of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> or retrieve <code>Just</code> the result
33  
- from a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>.
34  
-</p><p>When using a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> as a partial <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, or a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> as a partial <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> this can be a convenient
35  
- way to extract the optional value.
36  
-</p><pre>(<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) &#8801; <code>flip</code> <code><a href="Control-Lens-Fold.html#v:headOf">headOf</a></code></pre><pre>
37  
- (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; <code>Maybe</code> a
38  
- (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; <code>Maybe</code> a
39  
- (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; <code>Maybe</code> a
40  
- (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; <code>Maybe</code> a
41  
- (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code>Maybe</code> a
42  
-</pre></div></div><div class="top"><p class="src"><a name="v:-94-.." class="def">(^..)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; [a]<a href="src/Control-Lens-Fold.html#%5E.." class="link">Source</a></p><div class="doc"><p>A convenient infix (flipped) version of <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code>.
  32
+</p></div></div><div class="top"><p class="src"><a name="v:-94-.." class="def">(^..)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; [a]<a href="src/Control-Lens-Fold.html#%5E.." class="link">Source</a></p><div class="doc"><p>A convenient infix (flipped) version of <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code>.
43 33
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>[[1,2],[3]]^..traverse.traverse
44 34
 </code></strong>[1,2,3]
45 35
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(1,2)^..both
@@ -53,6 +43,31 @@
53 43
  (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; [a]
54 44
  (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; [a]
55 45
  (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; [a]
  46
+</pre></div></div><div class="top"><p class="src"><a name="v:-94--63-" class="def">(^?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; Maybe a<a href="src/Control-Lens-Fold.html#%5E%3F" class="link">Source</a></p><div class="doc"><p>Perform a safe <code>head</code> of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> or retrieve <code>Just</code> the result
  47
+ from a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> or <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>.
  48
+</p><p>When using a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> as a partial <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, or a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> as a partial <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> this can be a convenient
  49
+ way to extract the optional value.
  50
+</p><pre>(<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) &#8801; <code>flip</code> <code><a href="Control-Lens-Fold.html#v:headOf">headOf</a></code></pre><pre>
  51
+ (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; <code>Maybe</code> a
  52
+ (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; <code>Maybe</code> a
  53
+ (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; <code>Maybe</code> a
  54
+ (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; <code>Maybe</code> a
  55
+ (<code><a href="Control-Lens-Fold.html#v:-94--63-">^?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code>Maybe</code> a
  56
+</pre></div></div><div class="top"><p class="src"><a name="v:-94--63--33-" class="def">(^?!)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; a<a href="src/Control-Lens-Fold.html#%5E%3F%21" class="link">Source</a></p><div class="doc"><p>Perform an *UNSAFE* <code>head</code> of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> assuming that it is there.
  57
+</p><pre>
  58
+ (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>) :: s -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; a
  59
+ (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>) :: s -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; a
  60
+ (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; a
  61
+ (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; a
  62
+ (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; a
  63
+</pre></div></div><div class="top"><p class="src"><a name="v:-94--33--63-" class="def">(^!?)</a> ::  s -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (First a) s t a b -&gt; a<a href="src/Control-Lens-Fold.html#%5E%21%3F" class="link">Source</a></p><div class="doc"><p>Perform an *UNSAFE* <code>head</code> of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> assuming that it is there.
  64
+</p><p>This is an alias for (<code><a href="Control-Lens-Fold.html#v:-94--63--33-">^?!</a></code>).
  65
+</p><pre>
  66
+ (<code><a href="Control-Lens-Fold.html#v:-94--33--63-">^!?</a></code>) :: s -&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; a
  67
+ (<code><a href="Control-Lens-Fold.html#v:-94--33--63-">^!?</a></code>) :: s -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; a
  68
+ (<code><a href="Control-Lens-Fold.html#v:-94--33--63-">^!?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; a
  69
+ (<code><a href="Control-Lens-Fold.html#v:-94--33--63-">^!?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; a
  70
+ (<code><a href="Control-Lens-Fold.html#v:-94--33--63-">^!?</a></code>) :: s -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; a
56 71
 </pre></div></div><h2 id="g:2">Building Folds
57 72
 </h2><div class="top"><p class="src"><a name="v:folding" class="def">folding</a> :: (Foldable f, Applicative g, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> g) =&gt; (s -&gt; f a) -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> g s t a b<a href="src/Control-Lens-Fold.html#folding" class="link">Source</a></p><div class="doc"><p>Obtain a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> by lifting an operation that returns a foldable result.
58 73
 </p><p>This can be useful to lift operations from <code>Data.List</code> and elsewhere into a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>.
@@ -108,7 +123,7 @@
108 123
  <code><a href="Control-Lens-Fold.html#v:foldlOf">foldlOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r
109 124
  <code><a href="Control-Lens-Fold.html#v:foldlOf">foldlOf</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> s a       -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r
110 125
  <code><a href="Control-Lens-Fold.html#v:foldlOf">foldlOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r
111  
-</pre></div></div><div class="top"><p class="src"><a name="v:toListOf" class="def">toListOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; s -&gt; [a]<a href="src/Control-Lens-Fold.html#toListOf" class="link">Source</a></p><div class="doc"><p>Extract a list of the targets of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>. See also (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>).
  126
+</pre></div></div><div class="top"><p class="src"><a name="v:toListOf" class="def">toListOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo [a]) s t a b -&gt; s -&gt; [a]<a href="src/Control-Lens-Fold.html#toListOf" class="link">Source</a></p><div class="doc"><p>Extract a list of the targets of a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>. See also (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>).
112 127
 </p><pre>
113 128
  <code><a href="Data-Foldable.html#t:toList">toList</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code> <code><a href="Control-Lens-Fold.html#v:folded">folded</a></code>
114 129
  (<code><a href="Control-Lens-Fold.html#v:-94-..">^..</a></code>) &#8801; <code>flip</code> <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code>
40  Control-Lens-Getter.html
... ...
@@ -1,7 +1,7 @@
1 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.Getter</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
2 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Getter.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Getter.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.3: 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.Getter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Getters
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Getter.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.4: 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.Getter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Getters
5 5
 </a></li><li><a href="#g:2">Building Getters
6 6
 </a></li><li><a href="#g:3">Combinators for Getters and Folds
7 7
 </a></li><li><a href="#g:4">Storing Getters
@@ -18,7 +18,7 @@
18 18
  in the opposite order.
19 19
 </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
20 20
  single value for a given input.
21  
-</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: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"><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:-94--36-">(^$)</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:-37-">(%)</a> ::  a -&gt; (a -&gt; b) -&gt; b</li><li class="src short"><a href="#v:-94--37-">(^%)</a> ::  a -&gt; (a -&gt; b) -&gt; b</li><li class="src short"><a href="#v:view">view</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:views">views</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; s -&gt; r</li><li class="src short"><a href="#v:use">use</a> :: MonadState 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> :: MonadState 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:query">query</a> :: MonadReader 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:queries">queries</a> :: MonadReader 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"><span class="keyword">newtype</span>  <a href="#t:ReifiedGetter">ReifiedGetter</a> s a = <a href="#v:ReifyGetter">ReifyGetter</a> {<ul class="subs"><li><a href="#v:reflectGetter">reflectGetter</a> :: <a href="Control-Lens-Getter.html#t:Getter">Getter</a> s a</li></ul>}</li><li class="src short"><span class="keyword">class</span> Functor 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
  21
+</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: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"><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:-94--36-">(^$)</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><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:-94--38-">(^&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b</li><li class="src short"><a href="#v:view">view</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a</li><li class="src short"><a href="#v:views">views</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> r s t a b -&gt; (a -&gt; r) -&gt; s -&gt; r</li><li class="src short"><a href="#v:use">use</a> :: MonadState 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> :: MonadState 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:peruse">peruse</a> :: MonadReader 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:peruses">peruses</a> :: MonadReader 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"><span class="keyword">newtype</span>  <a href="#t:ReifiedGetter">ReifiedGetter</a> s a = <a href="#v:ReifyGetter">ReifyGetter</a> {<ul class="subs"><li><a href="#v:reflectGetter">reflectGetter</a> :: <a href="Control-Lens-Getter.html#t:Getter">Getter</a> s a</li></ul>}</li><li class="src short"><span class="keyword">class</span> Functor 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
22 22
 </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-Getter.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
23 23
  composed with other lens-like constructions.
24 24
 </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>
@@ -75,17 +75,17 @@
75 75
  (<code><a href="Control-Lens-Getter.html#v:-94--36-">^$</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> s a         -&gt; s -&gt; a
76 76
  (<code><a href="Control-Lens-Getter.html#v:-94--36-">^$</a></code>) ::             <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a        -&gt; s -&gt; a
77 77
  (<code><a href="Control-Lens-Getter.html#v:-94--36-">^$</a></code>) :: <code>Monoid</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s m   -&gt; s -&gt; m
78  
-</pre></div></div><div class="top"><p class="src"><a name="v:-37-" class="def">(%)</a> ::  a -&gt; (a -&gt; b) -&gt; b<a href="src/Control-Lens-Getter.html#%25" 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).
  78
+</pre></div></div><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-Getter.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).
79 79
 </p><p>This is the flipped version of (<code>$</code>), which is more common in languages like F# as (<code>|&gt;</code>) where it is needed
80 80
  for inference. Here it is supplied for notational convenience and given a precedence that allows it
81 81
  to be nested inside uses of (<code>$</code>).
82  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;hello&quot; % length % succ
  82
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;hello&quot; &amp; length &amp; succ
83 83
 </code></strong>6
84  
-</pre></div></div><div class="top"><p class="src"><a name="v:-94--37-" class="def">(^%)</a> ::  a -&gt; (a -&gt; b) -&gt; b<a href="src/Control-Lens-Getter.html#%5E%25" class="link">Source</a></p><div class="doc"><p>A version of (<code><a href="Control-Lens-Combinators.html#t:-37-">%</a></code>) with much tighter precedence that can be interleaved with (<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>)
85  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;hello&quot;^%length
  84
+</pre></div></div><div class="top"><p class="src"><a name="v:-94--38-" class="def">(^&amp;)</a> ::  a -&gt; (a -&gt; b) -&gt; b<a href="src/Control-Lens-Getter.html#%5E%26" class="link">Source</a></p><div class="doc"><p>A version of (<code><a href="Control-Lens-Getter.html#v:-38-">&amp;</a></code>) with much tighter precedence that can be interleaved with (<code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code>)
  85
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;hello&quot; ^&amp; length
86 86
 </code></strong>5
87 87
 <code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>import Data.List.Lens
88  
-</code></strong><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(&quot;hello&quot;,&quot;world&quot;)^._1^%reverse^._head
  88
+</code></strong><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(&quot;hello&quot;,&quot;world&quot;)^._1^&amp;reverse^!?_head
89 89
 </code></strong>'o'
90 90
 </pre></div></div><div class="top"><p class="src"><a name="v:view" class="def">view</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; s -&gt; a<a href="src/Control-Lens-Getter.html#view" class="link">Source</a></p><div class="doc"><p>View the value pointed to by a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> or
91 91
  <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or the result of folding over all the results of a
@@ -139,26 +139,26 @@
139 139
  <code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code>MonadState</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; (a -&gt; r) -&gt; m r
140 140
  <code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: <code>MonadState</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
141 141
  <code><a href="Control-Lens-Getter.html#v:uses">uses</a></code> :: (<code>MonadState</code> s m, <code>Monoid</code> r) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; r) -&gt; m r
142  
-</pre></div></div><div class="top"><p class="src"><a name="v:query" class="def">query</a> :: MonadReader s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; m a<a href="src/Control-Lens-Getter.html#query" class="link">Source</a></p><div class="doc"><p>Query the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> or
  142
+</pre></div></div><div class="top"><p class="src"><a name="v:peruse" class="def">peruse</a> :: MonadReader s m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> a s t a b -&gt; m a<a href="src/Control-Lens-Getter.html#peruse" class="link">Source</a></p><div class="doc"><p>Query the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> or
143 143
  <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> in the current state, or use a summary of a
144 144
  <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> that points
145 145
  to a monoidal value.
146 146
 </p><pre>
147  
- <code><a href="Control-Lens-Getter.html#v:query">query</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; m a
148  
- <code><a href="Control-Lens-Getter.html#v:query">query</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; m a
149  
- <code><a href="Control-Lens-Getter.html#v:query">query</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; m a
150  
- <code><a href="Control-Lens-Getter.html#v:query">query</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; m a
151  
- <code><a href="Control-Lens-Getter.html#v:query">query</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; m a
152  
-</pre></div></div><div class="top"><p class="src"><a name="v:queries" class="def">queries</a> :: MonadReader 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<a href="src/Control-Lens-Getter.html#queries" class="link">Source</a></p><div class="doc"><p>Use the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> or
  147
+ <code><a href="Control-Lens-Getter.html#v:peruse">peruse</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; m a
  148
+ <code><a href="Control-Lens-Getter.html#v:peruse">peruse</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; m a
  149
+ <code><a href="Control-Lens-Getter.html#v:peruse">peruse</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; m a
  150
+ <code><a href="Control-Lens-Getter.html#v:peruse">peruse</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; m a
  151
+ <code><a href="Control-Lens-Getter.html#v:peruse">peruse</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; m a
  152
+</pre></div></div><div class="top"><p class="src"><a name="v:peruses" class="def">peruses</a> :: MonadReader 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<a href="src/Control-Lens-Getter.html#peruses" class="link">Source</a></p><div class="doc"><p>Use the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> or
153 153
  <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> in the current state, or use a summary of a
154 154
  <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> that points
155 155
  to a monoidal value.
156 156
 </p><pre>
157  
- <code><a href="Control-Lens-Getter.html#v:queries">queries</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; (a -&gt; r) -&gt; m r
158  
- <code><a href="Control-Lens-Getter.html#v:queries">queries</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; (a -&gt; r) -&gt; m r
159  
- <code><a href="Control-Lens-Getter.html#v:queries">queries</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
160  
- <code><a href="Control-Lens-Getter.html#v:queries">queries</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; (a -&gt; r) -&gt; m r
161  
- <code><a href="Control-Lens-Getter.html#v:queries">queries</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; r) -&gt; m r
  157
+ <code><a href="Control-Lens-Getter.html#v:peruses">peruses</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code> s a           -&gt; (a -&gt; r) -&gt; m r
  158
+ <code><a href="Control-Lens-Getter.html#v:peruses">peruses</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a             -&gt; (a -&gt; r) -&gt; m r
  159
+ <code><a href="Control-Lens-Getter.html#v:peruses">peruses</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a       -&gt; (a -&gt; r) -&gt; m r
  160
+ <code><a href="Control-Lens-Getter.html#v:peruses">peruses</a></code> :: <code>MonadReader</code> s m             =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; (a -&gt; r) -&gt; m r
  161
+ <code><a href="Control-Lens-Getter.html#v:peruses">peruses</a></code> :: (<code>MonadReader</code> s m, <code>Monoid</code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; r) -&gt; m r
162 162
 </pre></div></div><h1 id="g:4">Storing Getters
163 163
 </h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ReifiedGetter" class="def">ReifiedGetter</a> s a <a href="src/Control-Lens-Getter.html#ReifiedGetter" class="link">Source</a></p><div class="doc"><p>Useful for storing getters in containers.
164 164
 </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReifyGetter" class="def">ReifyGetter</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:reflectGetter" class="def">reflectGetter</a> :: <a href="Control-Lens-Getter.html#t:Getter">Getter</a> s a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">class</span> Functor f =&gt; <a name="t:Gettable" class="def">Gettable</a> f <a href="src/Control-Lens-Internal.html#Gettable" class="link">Source</a></p><div class="doc"><p>Generalizing <code>Const</code> so we can apply simple <code>Applicative</code>
@@ -166,7 +166,7 @@
166 166
 </p><p>A <code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> <code>Functor</code> ignores its argument, which it carries solely as a
167 167
  phantom type parameter.
168 168
 </p><p>To ensure this, an instance of <code><a href="Control-Lens-Getter.html#t:Gettable">Gettable</a></code> is required to satisfy:
169  
-</p><pre><code>id</code> = <code>fmap</code> f = <code><a href="Control-Lens-Internal.html#v:coerce">coerce</a></code></pre></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> (Const 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> (Backwards 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:Indexing">Indexing</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(Functor f, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (Compose 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> (<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>Const</code> to report
  169
+</p><pre><code>id</code> = <code>fmap</code> f = <code><a href="Control-Lens-Internal.html#v:coerce">coerce</a></code></pre></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> (Const 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> (Backwards 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:ElementOf">ElementOf</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:Indexing">Indexing</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(Functor f, <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Gettable">Gettable</a> (Compose 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:EvilBazaar">EvilBazaar</a> 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>Const</code> to report
170 170
 </p><pre>No instance of (<code><a href="Control-Lens-Setter.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
171 171
  <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>, rather than a monolithic unification error.
172 172
 </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> Identity r (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Functor (<a href="Control-Lens-Getter.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Monoid r =&gt; Applicative (<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></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.1</p></div></body></html>
4  Control-Lens-Indexed.html
... ...
@@ -1,7 +1,7 @@
1 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.Indexed</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Indexed.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Indexed.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.Indexed</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Functions
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Indexed.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.Indexed</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Functions
5 5
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Combinators for working with <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> functions.
6 6
 </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:Indexed">Indexed</a> i k  <span class="keyword">where</span><ul class="subs"><li><a href="#v:index">index</a> ::  ((i -&gt; a) -&gt; b) -&gt; k a b</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Indexable">Indexable</a> i a b = <span class="keyword">forall</span> k. <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k =&gt; k a b</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Index">Index</a> i a b = <a href="#v:Index">Index</a> {<ul class="subs"><li><a href="#v:withIndex">withIndex</a> :: (i -&gt; a) -&gt; b</li></ul>}</li><li class="src short"><a href="#v:-60-.-62-">(&lt;.&gt;)</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> (i, j) k =&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i b c -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> j a b -&gt; k a c</li><li class="src short"><a href="#v:-60-.">(&lt;.)</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k =&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i b c -&gt; (a -&gt; b) -&gt; k a c</li><li class="src short"><a href="#v:.-62-">(.&gt;)</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i a b -&gt; k a c</li><li class="src short"><a href="#v:icompose">icompose</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> k r =&gt; (i -&gt; j -&gt; k) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i b c -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> j a b -&gt; r a c</li><li class="src short"><a href="#v:reindex">reindex</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j k =&gt; (i -&gt; j) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i a b -&gt; k a b</li><li class="src short"><a href="#v:indexed">indexed</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> Int k =&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; k (a -&gt; f b) (s -&gt; f t)</li></ul></div><div id="interface"><h1 id="g:1">Indexed Functions
7 7
 </h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Indexed" class="def">Indexed</a> i k  <span class="keyword">where</span><a href="src/Control-Lens-Indexed.html#Indexed" class="link">Source</a></p><div class="doc"><p>Permit overloading of function application for things that also admit a notion of a key or index.
@@ -23,7 +23,7 @@
23 23
 </p><p>Mnemonically, the <code>&gt;</code> points to the index we want to preserve.
24 24
 </p></div></div><div class="top"><p class="src"><a name="v:icompose" class="def">icompose</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> k r =&gt; (i -&gt; j -&gt; k) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i b c -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> j a b -&gt; r a c<a href="src/Control-Lens-Indexed.html#icompose" class="link">Source</a></p><div class="doc"><p>Composition of <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> functions with a user supplied function for combining indexs
25 25
 </p></div></div><div class="top"><p class="src"><a name="v:reindex" class="def">reindex</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> j k =&gt; (i -&gt; j) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i a b -&gt; k a b<a href="src/Control-Lens-Indexed.html#reindex" class="link">Source</a></p><div class="doc"><p>Remap the index.
26  
-</p></div></div><div class="top"><p class="src"><a name="v:indexed" class="def">indexed</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> Int k =&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; k (a -&gt; f b) (s -&gt; f t)<a href="src/Control-Lens-Indexed.html#indexed" class="link">Source</a></p><div class="doc"><p>Transform an Traversal into an IndexedTraversal, a Fold into an IndexedFold, etc.
  26
+</p></div></div><div class="top"><p class="src"><a name="v:indexed" class="def">indexed</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> Int k =&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; k (a -&gt; f b) (s -&gt; f t)<a href="src/Control-Lens-Indexed.html#indexed" class="link">Source</a></p><div class="doc"><p>Transform an <code>Traversal</code> into an <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code>, a <code>Fold</code> into an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, etc.
27 27
 </p><pre>
28 28
  <code><a href="Control-Lens-Indexed.html#v:indexed">indexed</a></code> :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s t a b -&gt; <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> <code>Int</code> s t a b
29 29
  <code><a href="Control-Lens-Indexed.html#v:indexed">indexed</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b      -&gt; <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code> <code>Int</code> s t a b
50  Control-Lens-IndexedFold.html
... ...
@@ -1,12 +1,12 @@
1 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.IndexedFold</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-IndexedFold.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedFold.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedFold</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Folds
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedFold.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedFold</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Folds
5 5
 </a></li><li><a href="#g:2">Consuming Indexed Folds
6 6
 </a></li><li><a href="#g:3">Converting to Folds
7 7
 </a></li><li><a href="#g:4">Building Indexed Folds
8 8
 </a></li><li><a href="#g:5">Storing Indexed Folds
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:IndexedFold">IndexedFold</a> i s a = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:ifoldMapOf">ifoldMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i m s t a b -&gt; (i -&gt; a -&gt; m) -&gt; s -&gt; m</li><li class="src short"><a href="#v:ifoldrOf">ifoldrOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo r) s t a b -&gt; (i -&gt; a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldlOf">ifoldlOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ianyOf">ianyOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i Any s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:iallOf">iallOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i All s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:itraverseOf_">itraverseOf_</a> :: Functor f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (i -&gt; a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:iforOf_">iforOf_</a> :: Functor f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; s -&gt; (i -&gt; a -&gt; f r) -&gt; f ()</li><li class="src short"><a href="#v:imapMOf_">imapMOf_</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (i -&gt; a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:iforMOf_">iforMOf_</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; s -&gt; (i -&gt; a -&gt; m r) -&gt; m ()</li><li class="src short"><a href="#v:iconcatMapOf">iconcatMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [r] s t a b -&gt; (i -&gt; a -&gt; [r]) -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:ifindOf">ifindOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (First (i, a)) s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Maybe (i, a)</li><li class="src short"><a href="#v:ifoldrOf-39-">ifoldrOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo (r -&gt; r))) s t a b -&gt; (i -&gt; a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldlOf-39-">ifoldlOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (r -&gt; r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldrMOf">ifoldrMOf</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo (r -&gt; m r))) s t a b -&gt; (i -&gt; a -&gt; r -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:ifoldlMOf">ifoldlMOf</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (r -&gt; m r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:itoListOf">itoListOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s t a b -&gt; s -&gt; [(i, a)]</li><li class="src short"><a href="#v:withIndicesOf">withIndicesOf</a> :: Functor f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t (i, a) (j, b)</li><li class="src short"><a href="#v:indicesOf">indicesOf</a> :: <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t i j</li><li class="src short"><a href="#v:ifiltering">ifiltering</a> :: (Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (a -&gt; f a) (s -&gt; f t) -&gt; k (a -&gt; f a) (s -&gt; f t)</li><li class="src short"><a href="#v:ibackwards">ibackwards</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k =&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (a -&gt; Backwards f b) (s -&gt; Backwards f t) -&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:itakingWhile">itakingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:idroppingWhile">idroppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s, f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:isplitting">isplitting</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; Splitter (i, a) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:isplittingOn">isplittingOn</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:isplittingOneOf">isplittingOneOf</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:isplittingWhen">isplittingWhen</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:iendingBy">iendingBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:iendingByOneOf">iendingByOneOf</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:iwordingBy">iwordingBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:iliningBy">iliningBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:ichunkingOf">ichunkingOf</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; Int -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:isplittingPlaces">isplittingPlaces</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Integral n) =&gt; [n] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><a href="#v:isplittingPlacesBlanks">isplittingPlacesBlanks</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Integral n) =&gt; [n] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i s a = <a href="#v:ReifyIndexedFold">ReifyIndexedFold</a> {<ul class="subs"><li><a href="#v:reflectIndexedFold">reflectIndexedFold</a> :: <a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a> i s a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Indexed Folds
  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:IndexedFold">IndexedFold</a> i s a = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:ifoldMapOf">ifoldMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i m s t a b -&gt; (i -&gt; a -&gt; m) -&gt; s -&gt; m</li><li class="src short"><a href="#v:ifoldrOf">ifoldrOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo r) s t a b -&gt; (i -&gt; a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldlOf">ifoldlOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ianyOf">ianyOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i Any s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:iallOf">iallOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i All s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Bool</li><li class="src short"><a href="#v:itraverseOf_">itraverseOf_</a> :: Functor f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (i -&gt; a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:iforOf_">iforOf_</a> :: Functor f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; s -&gt; (i -&gt; a -&gt; f r) -&gt; f ()</li><li class="src short"><a href="#v:imapMOf_">imapMOf_</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (i -&gt; a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:iforMOf_">iforMOf_</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; s -&gt; (i -&gt; a -&gt; m r) -&gt; m ()</li><li class="src short"><a href="#v:iconcatMapOf">iconcatMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [r] s t a b -&gt; (i -&gt; a -&gt; [r]) -&gt; s -&gt; [r]</li><li class="src short"><a href="#v:ifindOf">ifindOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (First (i, a)) s t a b -&gt; (i -&gt; a -&gt; Bool) -&gt; s -&gt; Maybe (i, a)</li><li class="src short"><a href="#v:ifoldrOf-39-">ifoldrOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo (r -&gt; r))) s t a b -&gt; (i -&gt; a -&gt; r -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldlOf-39-">ifoldlOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (r -&gt; r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; r) -&gt; r -&gt; s -&gt; r</li><li class="src short"><a href="#v:ifoldrMOf">ifoldrMOf</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Dual (Endo (r -&gt; m r))) s t a b -&gt; (i -&gt; a -&gt; r -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:ifoldlMOf">ifoldlMOf</a> :: Monad m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (r -&gt; m r)) s t a b -&gt; (i -&gt; r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; m r</li><li class="src short"><a href="#v:itoListOf">itoListOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s t a b -&gt; s -&gt; [(i, a)]</li><li class="src short"><a href="#v:withIndicesOf">withIndicesOf</a> :: Functor f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t (i, a) (j, b)</li><li class="src short"><a href="#v:indicesOf">indicesOf</a> :: <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a a -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t i j</li><li class="src short"><a href="#v:ifiltering">ifiltering</a> :: (Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (a -&gt; f a) (s -&gt; f t) -&gt; k (a -&gt; f a) (s -&gt; f t)</li><li class="src short"><a href="#v:ibackwards">ibackwards</a> :: <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k =&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (a -&gt; Backwards f b) (s -&gt; Backwards f t) -&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:itakingWhile">itakingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:idroppingWhile">idroppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s, f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i s a = <a href="#v:ReifyIndexedFold">ReifyIndexedFold</a> {<ul class="subs"><li><a href="#v:reflectIndexedFold">reflectIndexedFold</a> :: <a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a> i s a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Indexed Folds
10 10
 </h1><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> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (a -&gt; f a) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#IndexedFold" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> is a valid <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>.
11 11
 </p></div></div><h1 id="g:2">Consuming Indexed Folds
12 12
 </h1><div class="top"><p class="src"><a name="v:ifoldMapOf" class="def">ifoldMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i m s t a b -&gt; (i -&gt; a -&gt; m) -&gt; s -&gt; m<a href="src/Control-Lens-IndexedFold.html#ifoldMapOf" class="link">Source</a></p><div class="doc"><p>Fold an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> by mapping indices and values to an arbitrary <code>Monoid</code> with access
@@ -129,8 +129,8 @@
129 129
  <code><a href="Control-Lens-IndexedFold.html#v:ifoldlOf-39-">ifoldlOf'</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-IndexedLens.html#t:SimpleIndexedLens">SimpleIndexedLens</a></code> i s a        -&gt; (i -&gt; r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; r
130 130
  <code><a href="Control-Lens-IndexedFold.html#v:ifoldlOf-39-">ifoldlOf'</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a></code> i s a   -&gt; (i -&gt; r -&gt; a -&gt; m r) -&gt; r -&gt; s -&gt; r
131 131
 </pre></div></div><div class="top"><p class="src"><a name="v:itoListOf" class="def">itoListOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s t a b -&gt; s -&gt; [(i, a)]<a href="src/Control-Lens-IndexedFold.html#itoListOf" class="link">Source</a></p><div class="doc"><p>Extract the key-value pairs from a structure.
132  
-</p><p>When you don't need access to the indices in the result, then <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code> is more flexible in what it accepts.
133  
-</p><pre><code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code> l &#8801; <code>map</code> <code>fst</code> <code>.</code> <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> l</pre><pre>
  132
+</p><p>When you don't need access to the indices in the result, then <code><a href="Control-Lens-Fold.html#t:toListOf">toListOf</a></code> is more flexible in what it accepts.
  133
+</p><pre><code><a href="Control-Lens-Fold.html#t:toListOf">toListOf</a></code> l &#8801; <code>map</code> <code>fst</code> <code>.</code> <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> l</pre><pre>
134 134
  <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> :: <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> i s a          -&gt; s -&gt; [(i,a)]
135 135
  <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> :: <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a            -&gt; s -&gt; [(i,a)]
136 136
  <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> :: <code><a href="Control-Lens-IndexedLens.html#t:SimpleIndexedLens">SimpleIndexedLens</a></code> i s a      -&gt; s -&gt; [(i,a)]
@@ -161,46 +161,6 @@
161 161
  This has no effect on an <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code>, or <code><a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a></code>.
162 162
 </p></div></div><div class="top"><p class="src"><a name="v:itakingWhile" class="def">itakingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#itakingWhile" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by taking elements from another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> while a predicate holds.
163 163
 </p></div></div><div class="top"><p class="src"><a name="v:idroppingWhile" class="def">idroppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, Applicative f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (Endo (f s, f s)) s s a a -&gt; k (a -&gt; f a) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#idroppingWhile" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by dropping elements from another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> while a predicate holds.
164  
-</p></div></div><div class="top"><p class="src"><a name="v:isplitting" class="def">isplitting</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; Splitter (i, a) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplitting" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> according to the given splitting strategy.
165  
-</p><pre>
166  
- <code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> :: <code>Splitter</code> (i, a) -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
167  
-</pre></div></div><div class="top"><p class="src"><a name="v:isplittingOn" class="def">isplittingOn</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplittingOn" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> on the given delimiter.
168  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>onSublist</code></code>.
169  
-</p><pre>
170  
- <code><a href="Control-Lens-IndexedFold.html#v:isplittingOn">isplittingOn</a></code> :: (<code>Eq</code> i, <code>Eq</code> a) =&gt; [(i, a)] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
171  
-</pre></div></div><div class="top"><p class="src"><a name="v:isplittingOneOf" class="def">isplittingOneOf</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplittingOneOf" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> on any of the given elements.
172  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>oneOf</code></code>.
173  
-</p><pre>
174  
- <code><a href="Control-Lens-IndexedFold.html#v:isplittingOneOf">isplittingOneOf</a></code> :: (<code>Eq</code> i, <code>Eq</code> a) =&gt; [(i, a)] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
175  
-</pre></div></div><div class="top"><p class="src"><a name="v:isplittingWhen" class="def">isplittingWhen</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplittingWhen" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> on elements satisfying the given predicate.
176  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>whenElt</code> <code>.</code> <code>uncurry</code></code>.
177  
-</p><pre>
178  
- <code><a href="Control-Lens-IndexedFold.html#v:isplittingWhen">isplittingWhen</a></code> :: (i -&gt; a -&gt; <code>Bool</code>) -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
179  
-</pre></div></div><div class="top"><p class="src"><a name="v:iendingBy" class="def">iendingBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#iendingBy" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into chunks terminated by the given delimiter.
180  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>onSublist</code></code>.
181  
-</p><pre>
182  
- <code><a href="Control-Lens-IndexedFold.html#v:iendingBy">iendingBy</a></code> :: (<code>Eq</code> i, <code>Eq</code> a) =&gt; [(i, a)] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
183  
-</pre></div></div><div class="top"><p class="src"><a name="v:iendingByOneOf" class="def">iendingByOneOf</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Eq i, Eq a) =&gt; [(i, a)] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#iendingByOneOf" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into chunks terminated by any of the given elements.
184  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropFinalBlank</code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>oneOf</code></code>.
185  
-</p><pre>
186  
- <code><a href="Control-Lens-IndexedFold.html#v:iendingByOneOf">iendingByOneOf</a></code> :: (<code>Eq</code> i, <code>Eq</code> a) =&gt; [(i, a)] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
187  
-</pre></div></div><div class="top"><p class="src"><a name="v:iwordingBy" class="def">iwordingBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#iwordingBy" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into <a href="words.html">words</a>, with word boundaries indicated by the given predicate.
188  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropBlanks</code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>whenElt</code> <code>.</code> <code>uncurry</code></code>.
189  
-</p><pre>
190  
- <code><a href="Control-Lens-IndexedFold.html#v:iwordingBy">iwordingBy</a></code> :: (i -&gt; a -&gt; <code>Bool</code>) -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
191  
-</pre></div></div><div class="top"><p class="src"><a name="v:iliningBy" class="def">iliningBy</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k) =&gt; (i -&gt; a -&gt; Bool) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#iliningBy" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into <a href="lines.html">lines</a>, with line boundaries indicated by the given predicate.
192  
-</p><p>Equivalent to <code><code><a href="Control-Lens-IndexedFold.html#v:isplitting">isplitting</a></code> <code>.</code> <code>dropFinalBlank</code> <code>.</code> <code>dropDelims</code> <code>.</code> <code>whenElt</code> <code>.</code> <code>uncurry</code></code>.
193  
-</p><pre>
194  
- <code><a href="Control-Lens-IndexedFold.html#v:iliningBy">iliningBy</a></code> :: (i -&gt; a -&gt; <code>Bool</code>) -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
195  
-</pre></div></div><div class="top"><p class="src"><a name="v:ichunkingOf" class="def">ichunkingOf</a><a href="src/Control-Lens-IndexedFold.html#ichunkingOf" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; Int</td><td class="doc"><pre>n</pre></td></tr><tr><td class="src">-&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; k ([a] -&gt; f [a]) (s -&gt; f s)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into length-<code>n</code> pieces.
196  
-</p><pre>
197  
- <code><a href="Control-Lens-IndexedFold.html#v:ichunkingOf">ichunkingOf</a></code> :: <code>Int</code> -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
198  
-</pre></div></div><div class="top"><p class="src"><a name="v:isplittingPlaces" class="def">isplittingPlaces</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Integral n) =&gt; [n] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplittingPlaces" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into chunks of the given lengths.
199  
-</p><pre>
200  
- <code><a href="Control-Lens-IndexedFold.html#v:isplittingPlaces">isplittingPlaces</a></code> :: <code>Integral</code> n =&gt; [n] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
201  
-</pre></div></div><div class="top"><p class="src"><a name="v:isplittingPlacesBlanks" class="def">isplittingPlacesBlanks</a> :: (Applicative f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> [i] k, Integral n) =&gt; [n] -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, a)] s s a a -&gt; k ([a] -&gt; f [a]) (s -&gt; f s)<a href="src/Control-Lens-IndexedFold.html#isplittingPlacesBlanks" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by splitting another <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>, <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> or <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> into chunks of the given lengths.  Unlike <code><a href="Control-Lens-IndexedFold.html#v:isplittingPlaces">isplittingPlaces</a></code>, the output <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> will always be the same length as the first input argument.
202  
-</p><pre>
203  
- <code><a href="Control-Lens-IndexedFold.html#v:isplittingPlacesBlanks">isplittingPlacesBlanks</a></code> :: <code>Integral</code> n =&gt; [n] -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i s a -&gt; <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> [i] s [a]
204  
-</pre></div></div><h1 id="g:5">Storing Indexed Folds
  164
+</p></div></div><h1 id="g:5">Storing Indexed Folds
205 165
 </h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ReifiedIndexedFold" class="def">ReifiedIndexedFold</a> i s a <a href="src/Control-Lens-IndexedFold.html#ReifiedIndexedFold" class="link">Source</a></p><div class="doc"><p>Useful for storage.
206 166
 </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReifyIndexedFold" class="def">ReifyIndexedFold</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:reflectIndexedFold" class="def">reflectIndexedFold</a> :: <a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a> i s a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.1</p></div></body></html>
2  Control-Lens-IndexedGetter.html
... ...
@@ -1,7 +1,7 @@
1 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.IndexedGetter</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-IndexedGetter.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedGetter.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs</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>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedGetter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Folds
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedGetter.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs</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>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedGetter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Folds
5 5
 </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:IndexedGetter">IndexedGetter</a> i s a = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (a -&gt; f a) (s -&gt; f s)</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-Indexed.html#t:Index">Index</a> i (a -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m b) (s -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m t)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i s a = <a href="#v:ReifyIndexedGetter">ReifyIndexedGetter</a> {<ul class="subs"><li><a href="#v:reflectIndexedGetter">reflectIndexedGetter</a> :: <a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a> i s a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Indexed Folds
6 6
 </h1><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> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (a -&gt; f a) (s -&gt; f s)<a href="src/Control-Lens-IndexedGetter.html#IndexedGetter" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code> is a valid <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> and <code>Getter</code>.
7 7
 </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-Indexed.html#t:Index">Index</a> i (a -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m b) (s -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m t)<a href="src/Control-Lens-IndexedGetter.html#IndexedGetting" class="link">Source</a></p><div class="doc"><p>Used to consume an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>.
4  Control-Lens-IndexedLens.html
... ...
@@ -1,7 +1,7 @@
1 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.IndexedLens</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-IndexedLens.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedLens.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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.IndexedLens</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Lenses
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedLens.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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.IndexedLens</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Lenses
5 5
 </a></li><li><a href="#g:2">Common Indexed Lenses
6 6
 </a></li><li><a href="#g:3">Indexed Lens Combinators
7 7
 </a></li><li><a href="#g:4">Storing Indexed Lenses
@@ -19,7 +19,7 @@
19 19
 </code></strong>fromList [1,2,4]
20 20
 </pre></div></div><div class="subs instances"><p id="control.i:Contains" class="caption collapser" onclick="toggleSection('i:Contains')">Instances</p><div id="section.i:Contains" class="show"><table><tr><td class="src"><a href="Control-Lens-IndexedLens.html#t:Contains">Contains</a> Int IntSet</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(Eq k, Hashable k) =&gt; <a href="Control-Lens-IndexedLens.html#t:Contains">Contains</a> k (HashSet k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Ord k =&gt; <a href="Control-Lens-IndexedLens.html#t:Contains">Contains</a> k (Set k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:resultAt" class="def">resultAt</a> :: Eq e =&gt; e -&gt; <a href="Control-Lens-IndexedLens.html#t:SimpleIndexedLens">SimpleIndexedLens</a> e (e -&gt; a) a<a href="src/Control-Lens-IndexedLens.html#resultAt" class="link">Source</a></p><div class="doc"><p>This lens can be used to change the result of a function but only where
21 21
  the arguments match the key given.
22  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>let f = (+1) % resultAt 3 .~ 8 in (f 2, f 3)
  22
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>let f = (+1) &amp; resultAt 3 .~ 8 in (f 2, f 3)
23 23
 </code></strong>(3,8)
24 24
 </pre></div></div><h1 id="g:3">Indexed Lens Combinators
25 25
 </h1><div class="top"><p class="src"><a name="v:-37--37--64--126-" class="def">(%%@~)</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-IndexedLens.html#%25%25%40~" class="link">Source</a></p><div class="doc"><p>Adjust the target of an <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code> returning a supplementary result, or
2  Control-Lens-IndexedSetter.html
... ...
@@ -1,7 +1,7 @@
1 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.IndexedSetter</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-IndexedSetter.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedSetter.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedSetter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Setter
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedSetter.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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-Inferred</td></tr></table><p class="caption">Control.Lens.IndexedSetter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Setter
5 5
 </a></li><li><a href="#g:2">Storing Indexed Setters
6 6
 </a></li><li><a href="#g:3">Simple
7 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:IndexedSetter">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f k. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f) =&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:imapOf">imapOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> s t a b -&gt; (i -&gt; a -&gt; b) -&gt; s -&gt; t</li><li class="src short"><a href="#v:iover">iover</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> s t a b -&gt; (i -&gt; a -&gt; b) -&gt; s -&gt; t</li><li class="src short"><a href="#v:isets">isets</a> ::  ((i -&gt; a -&gt; b) -&gt; s -&gt; t) -&gt; <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> i s t a b</li><li class="src short"><a href="#v:-37--64--126-">(%@~)</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> s t a b -&gt; (i -&gt; a -&gt; b) -&gt; s -&gt; t</li><li class="src short"><a href="#v:-37--64--61-">(%@=)</a> :: MonadState s m =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> s s a b -&gt; (i -&gt; a -&gt; b) -&gt; m ()</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedSetter">ReifiedIndexedSetter</a> i s t a b = <a href="#v:ReifyIndexedSetter">ReifyIndexedSetter</a> {<ul class="subs"><li><a href="#v:reflectIndexedSetter">reflectIndexedSetter</a> :: <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> i s t a b</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIndexedSetter">SimpleIndexedSetter</a> i s a = <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedIndexedSetter">SimpleReifiedIndexedSetter</a> i s a = <a href="Control-Lens-IndexedSetter.html#t:ReifiedIndexedSetter">ReifiedIndexedSetter</a> i s s a a</li></ul></div><div id="interface"><h1 id="g:1">Indexed Setter
10  Control-Lens-IndexedTraversal.html
... ...
@@ -1,12 +1,12 @@
1 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.IndexedTraversal</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-IndexedTraversal.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedTraversal.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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.IndexedTraversal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Traversals
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-IndexedTraversal.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>rank 2 types, MPTCs, TFs, flexible</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.IndexedTraversal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Traversals
5 5
 </a></li><li><a href="#g:2">Common Indexed Traversals
6 6
 </a></li><li><a href="#g:3">Indexed Traversal Combinators
7 7
 </a></li><li><a href="#g:4">Storing Indexed Traversals
8 8
 </a></li><li><a href="#g:5">Simple
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:IndexedTraversal">IndexedTraversal</a> i s t a b = <span class="keyword">forall</span> f k. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:traverseAt">traverseAt</a> :: <a href="Control-Lens-IndexedLens.html#t:At">At</a> k m =&gt; k -&gt; <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li><li class="src short"><a href="#v:iwhereOf">iwhereOf</a> :: (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a a -&gt; (i -&gt; Bool) -&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s t a a</li><li class="src short"><a href="#v:value">value</a> ::  (k -&gt; Bool) -&gt; <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (k, v) v</li><li class="src short"><a href="#v:ignored">ignored</a> :: <span class="keyword">forall</span> s a b k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> Void k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b</li><li class="src short"><span class="keyword">class</span> Ord k =&gt; <a href="#t:TraverseMin">TraverseMin</a> k m | m -&gt; k <span class="keyword">where</span><ul class="subs"><li><a href="#v:traverseMin">traverseMin</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li></ul></li><li class="src short"><span class="keyword">class</span> Ord k =&gt; <a href="#t:TraverseMax">TraverseMax</a> k m | m -&gt; k <span class="keyword">where</span><ul class="subs"><li><a href="#v:traverseMax">traverseMax</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li></ul></li><li class="src short"><a href="#v:itraverseOf">itraverseOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</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:iforOf">iforOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; s -&gt; (i -&gt; a -&gt; f b) -&gt; f t</li><li class="src short"><a href="#v:imapMOf">imapMOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (WrappedMonad m) s t a b -&gt; (i -&gt; a -&gt; m b) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:iforMOf">iforMOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (WrappedMonad m) s t a b -&gt; s -&gt; (i -&gt; a -&gt; m b) -&gt; m t</li><li class="src short"><a href="#v:imapAccumROf">imapAccumROf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (State s) s t a b -&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; s -&gt; (s, t)</li><li class="src short"><a href="#v:imapAccumLOf">imapAccumLOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (Backwards (State s)) s t a b -&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; s -&gt; (s, t)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedTraversal">ReifiedIndexedTraversal</a> i s t a b = <a href="#v:ReifyIndexedTraversal">ReifyIndexedTraversal</a> {<ul class="subs"><li><a href="#v:reflectIndexedTraversal">reflectIndexedTraversal</a> :: <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> i s t a b</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> i s a = <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedIndexedTraversal">SimpleReifiedIndexedTraversal</a> i s a = <a href="Control-Lens-IndexedTraversal.html#t:ReifiedIndexedTraversal">ReifiedIndexedTraversal</a> i s s a a</li></ul></div><div id="interface"><h1 id="g:1">Indexed Traversals
  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:IndexedTraversal">IndexedTraversal</a> i s t a b = <span class="keyword">forall</span> f k. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:traverseAt">traverseAt</a> :: <a href="Control-Lens-IndexedLens.html#t:At">At</a> k m =&gt; k -&gt; <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li><li class="src short"><a href="#v:iwhereOf">iwhereOf</a> :: (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a a -&gt; (i -&gt; Bool) -&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s t a a</li><li class="src short"><a href="#v:value">value</a> ::  (k -&gt; Bool) -&gt; <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (k, v) v</li><li class="src short"><a href="#v:ignored">ignored</a> :: <span class="keyword">forall</span> k f i s a b. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b</li><li class="src short"><span class="keyword">class</span> Ord k =&gt; <a href="#t:TraverseMin">TraverseMin</a> k m | m -&gt; k <span class="keyword">where</span><ul class="subs"><li><a href="#v:traverseMin">traverseMin</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li></ul></li><li class="src short"><span class="keyword">class</span> Ord k =&gt; <a href="#t:TraverseMax">TraverseMax</a> k m | m -&gt; k <span class="keyword">where</span><ul class="subs"><li><a href="#v:traverseMax">traverseMax</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v</li></ul></li><li class="src short"><a href="#v:traversed">traversed</a> :: <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> Int (f a) (f b) a b</li><li class="src short"><a href="#v:itraverseOf">itraverseOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</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:iforOf">iforOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; s -&gt; (i -&gt; a -&gt; f b) -&gt; f t</li><li class="src short"><a href="#v:imapMOf">imapMOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (WrappedMonad m) s t a b -&gt; (i -&gt; a -&gt; m b) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:iforMOf">iforMOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (WrappedMonad m) s t a b -&gt; s -&gt; (i -&gt; a -&gt; m b) -&gt; m t</li><li class="src short"><a href="#v:imapAccumROf">imapAccumROf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (State s) s t a b -&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; s -&gt; (s, t)</li><li class="src short"><a href="#v:imapAccumLOf">imapAccumLOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) (Backwards (State s)) s t a b -&gt; (i -&gt; s -&gt; a -&gt; (s, b)) -&gt; s -&gt; s -&gt; (s, t)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedTraversal">ReifiedIndexedTraversal</a> i s t a b = <a href="#v:ReifyIndexedTraversal">ReifyIndexedTraversal</a> {<ul class="subs"><li><a href="#v:reflectIndexedTraversal">reflectIndexedTraversal</a> :: <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> i s t a b</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> i s a = <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedIndexedTraversal">SimpleReifiedIndexedTraversal</a> i s a = <a href="Control-Lens-IndexedTraversal.html#t:ReifiedIndexedTraversal">ReifiedIndexedTraversal</a> i s s a a</li></ul></div><div id="interface"><h1 id="g:1">Indexed Traversals
10 10
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedTraversal" class="def">IndexedTraversal</a> i s t a b = <span class="keyword">forall</span> f k. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; k (a -&gt; f b) (s -&gt; f t)<a href="src/Control-Lens-IndexedTraversal.html#IndexedTraversal" class="link">Source</a></p><div class="doc"><p>Every indexed traversal is a valid <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> or <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code>.
11 11
 </p><p>The <code><a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a></code> constraint is used to allow an <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> to be used directly as a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>.
12 12
 </p><p>The <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> laws are still required to hold.
@@ -23,11 +23,13 @@
23 23
  <code><a href="Control-Lens-IndexedTraversal.html#v:iwhereOf">iwhereOf</a></code> :: <code>SimpleIndexedSetter</code> i s a    -&gt; (i -&gt; <code>Bool</code>) -&gt; <code>SimpleIndexedSetter</code> i s a
24 24
 </pre></div></div><div class="top"><p class="src"><a name="v:value" class="def">value</a> ::  (k -&gt; Bool) -&gt; <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (k, v) v<a href="src/Control-Lens-IndexedTraversal.html#value" class="link">Source</a></p><div class="doc"><p>This provides a <code>Traversal</code> that checks a predicate on a key before
25 25
  allowing you to traverse into a value.
26  
-</p></div></div><div class="top"><p class="src"><a name="v:ignored" class="def">ignored</a> :: <span class="keyword">forall</span> s a b k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> Void k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b<a href="src/Control-Lens-IndexedTraversal.html#ignored" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> Ord k =&gt; <a name="t:TraverseMin" class="def">TraverseMin</a> k m | m -&gt; k <span class="keyword">where</span><a href="src/Control-Lens-IndexedTraversal.html#TraverseMin" class="link">Source</a></p><div class="doc"><p>Allows <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> the value at the smallest index.
  26
+</p></div></div><div class="top"><p class="src"><a name="v:ignored" class="def">ignored</a> :: <span class="keyword">forall</span> k f i s a b. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, Applicative f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b<a href="src/Control-Lens-IndexedTraversal.html#ignored" class="link">Source</a></p><div class="doc"><p>This is the trivial empty traversal.
  27
+</p><pre><code><a href="Control-Lens-IndexedTraversal.html#v:ignored">ignored</a></code> :: <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> i s s a b</pre><pre><code><a href="Control-Lens-IndexedTraversal.html#v:ignored">ignored</a></code> &#8801; <code>const</code> <code>pure</code></pre></div></div><div class="top"><p class="src"><span class="keyword">class</span> Ord k =&gt; <a name="t:TraverseMin" class="def">TraverseMin</a> k m | m -&gt; k <span class="keyword">where</span><a href="src/Control-Lens-IndexedTraversal.html#TraverseMin" class="link">Source</a></p><div class="doc"><p>Allows <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> the value at the smallest index.
27 28
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:traverseMin" class="def">traverseMin</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v<a href="src/Control-Lens-IndexedTraversal.html#traverseMin" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> of the element with the smallest index.
28 29
 </p></div></div><div class="subs instances"><p id="control.i:TraverseMin" class="caption collapser" onclick="toggleSection('i:TraverseMin')">Instances</p><div id="section.i:TraverseMin" class="show"><table><tr><td class="src"><a href="Control-Lens-IndexedTraversal.html#t:TraverseMin">TraverseMin</a> Int IntMap</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Ord k =&gt; <a href="Control-Lens-IndexedTraversal.html#t:TraverseMin">TraverseMin</a> k (Map k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> Ord k =&gt; <a name="t:TraverseMax" class="def">TraverseMax</a> k m | m -&gt; k <span class="keyword">where</span><a href="src/Control-Lens-IndexedTraversal.html#TraverseMax" class="link">Source</a></p><div class="doc"><p>Allows <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> of the value at the largest index.
29 30
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:traverseMax" class="def">traverseMax</a> ::  <a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a> k (m v) v<a href="src/Control-Lens-IndexedTraversal.html#traverseMax" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> of the element at the largest index.
30  
-</p></div></div><div class="subs instances"><p id="control.i:TraverseMax" class="caption collapser" onclick="toggleSection('i:TraverseMax')">Instances</p><div id="section.i:TraverseMax" class="show"><table><tr><td class="src"><a href="Control-Lens-IndexedTraversal.html#t:TraverseMax">TraverseMax</a> Int IntMap</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Ord k =&gt; <a href="Control-Lens-IndexedTraversal.html#t:TraverseMax">TraverseMax</a> k (Map k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:3">Indexed Traversal Combinators
  31
+</p></div></div><div class="subs instances"><p id="control.i:TraverseMax" class="caption collapser" onclick="toggleSection('i:TraverseMax')">Instances</p><div id="section.i:TraverseMax" class="show"><table><tr><td class="src"><a href="Control-Lens-IndexedTraversal.html#t:TraverseMax">TraverseMax</a> Int IntMap</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">Ord k =&gt; <a href="Control-Lens-IndexedTraversal.html#t:TraverseMax">TraverseMax</a> k (Map k)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:traversed" class="def">traversed</a> :: <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> Int (f a) (f b) a b<a href="src/Control-Lens-IndexedTraversal.html#traversed" class="link">Source</a></p><div class="doc"><p>Traverse any <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> container. This is an <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> that is indexed by ordinal position.
  32
+</p></div></div><h1 id="g:3">Indexed Traversal Combinators
31 33
 </h1><div class="top"><p class="src"><a name="v:itraverseOf" class="def">itraverseOf</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f s t a b -&gt; (i -&gt; a -&gt; f b) -&gt; s -&gt; f t<a href="src/Control-Lens-IndexedTraversal.html#itraverseOf" class="link">Source</a></p><div class="doc"><p>Traversal with an index.
32 34
 </p><p>NB: When you don't need access to the index then you can just apply your <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code>
33 35
  directly as a function!
104  Control-Lens-Internal.html
58 additions, 46 deletions not shown
64  Control-Lens-Iso.html
... ...
@@ -1,12 +1,13 @@
1 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.Iso</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Iso.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Iso.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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Iso</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Isomorphism Lenses
5  
-</a></li><li><a href="#g:2">Primitive isomorphisms
6  
-</a><ul><li><a href="#g:3">Common Isomorphisms
7  
-</a></li></ul></li><li><a href="#g:4">Storing Isomorphisms
8  
-</a></li><li><a href="#g:5">Simplicity
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:Iso">Iso</a> s t a b = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:iso">iso</a> :: (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; (s -&gt; a) -&gt; (a -&gt; s) -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:isos">isos</a> :: (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; (s -&gt; a) -&gt; (a -&gt; s) -&gt; (t -&gt; b) -&gt; (b -&gt; t) -&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:ala">ala</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((s -&gt; a) -&gt; e -&gt; a) -&gt; e -&gt; s</li><li class="src short"><a href="#v:auf">auf</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((b -&gt; a) -&gt; e -&gt; a) -&gt; (b -&gt; s) -&gt; e -&gt; s</li><li class="src short"><a href="#v:under">under</a> ::  <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> (a -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) (s -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t) -&gt; (s -&gt; t) -&gt; a -&gt; b</li><li class="src short"><a href="#v:from">from</a> :: <a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> a b -&gt; k b a</li><li class="src short"><a href="#v:via">via</a> :: <a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> a b -&gt; k a b</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Isomorphism">Isomorphism</a> a b = <a href="#v:Isomorphism">Isomorphism</a> (a -&gt; b) (b -&gt; a)</li><li class="src short"><span class="keyword">class</span> Category k =&gt; <a href="#t:Isomorphic">Isomorphic</a> k  <span class="keyword">where</span><ul class="subs"><li><a href="#v:isomorphic">isomorphic</a> ::  (a -&gt; b) -&gt; (b -&gt; a) -&gt; k a b</li><li><a href="#v:isomap">isomap</a> ::  ((a -&gt; b) -&gt; c -&gt; d) -&gt; ((b -&gt; a) -&gt; d -&gt; c) -&gt; k a b -&gt; k c d</li></ul></li><li class="src short"><a href="#v:_const">_const</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b (Const a c) (Const b d)</li><li class="src short"><a href="#v:identity">identity</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b (Identity a) (Identity b)</li><li class="src short"><a href="#v:simple">simple</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b a b</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIso">ReifiedIso</a> s t a b = <a href="#v:ReifyIso">ReifyIso</a> {<ul class="subs"><li><a href="#v:reflectIso">reflectIso</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIso">SimpleIso</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:SimpleReifiedIso">SimpleReifiedIso</a> s a = <a href="Control-Lens-Iso.html#t:ReifiedIso">ReifiedIso</a> s s a a</li></ul></div><div id="interface"><h1 id="g:1">Isomorphism Lenses
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Iso.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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Iso</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Isomorphism Lenses
  5
+</a></li><li><a href="#g:2">Working with isomorphisms
  6
+</a></li><li><a href="#g:3">Primitive isomorphisms
  7
+</a><ul><li><a href="#g:4">Common Isomorphisms
  8
+</a></li></ul></li><li><a href="#g:5">Storing Isomorphisms
  9
+</a></li><li><a href="#g:6">Simplicity
  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> k f. (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:iso">iso</a> :: (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; (s -&gt; a) -&gt; (a -&gt; s) -&gt; k (a -&gt; f a) (s -&gt; f s)</li><li class="src short"><a href="#v:isos">isos</a> :: (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; (s -&gt; a) -&gt; (a -&gt; s) -&gt; (t -&gt; b) -&gt; (b -&gt; t) -&gt; k (a -&gt; f b) (s -&gt; f t)</li><li class="src short"><a href="#v:ala">ala</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((s -&gt; a) -&gt; e -&gt; a) -&gt; e -&gt; s</li><li class="src short"><a href="#v:auf">auf</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((b -&gt; a) -&gt; e -&gt; a) -&gt; (b -&gt; s) -&gt; e -&gt; s</li><li class="src short"><a href="#v:under">under</a> ::  <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> (a -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) (s -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t) -&gt; (s -&gt; t) -&gt; a -&gt; b</li><li class="src short"><a href="#v:mapping">mapping</a> :: Functor f =&gt; <a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</a> s a -&gt; <a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</a> (f s) (f a)</li><li class="src short"><a href="#v:review">review</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> s) s t a b -&gt; a -&gt; s</li><li class="src short"><a href="#v:from">from</a> :: <a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> a b -&gt; k b a</li><li class="src short"><a href="#v:via">via</a> :: <a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> a b -&gt; k a b</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Isomorphism">Isomorphism</a> a b = <a href="#v:Isomorphism">Isomorphism</a> (a -&gt; b) (b -&gt; a)</li><li class="src short"><span class="keyword">class</span> Category k =&gt; <a href="#t:Isomorphic">Isomorphic</a> k  <span class="keyword">where</span><ul class="subs"><li><a href="#v:isomorphic">isomorphic</a> ::  (a -&gt; b) -&gt; (b -&gt; a) -&gt; k a b</li><li><a href="#v:isomap">isomap</a> ::  ((a -&gt; b) -&gt; c -&gt; d) -&gt; ((b -&gt; a) -&gt; d -&gt; c) -&gt; k a b -&gt; k c d</li></ul></li><li class="src short"><a href="#v:_const">_const</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b (Const a c) (Const b d)</li><li class="src short"><a href="#v:identity">identity</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b (Identity a) (Identity b)</li><li class="src short"><a href="#v:simple">simple</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a a</li><li class="src short"><a href="#v:non">non</a> :: Eq a =&gt; a -&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (Maybe a) a</li><li class="src short"><a href="#v:enum">enum</a> :: Enum a =&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> Int a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIso">ReifiedIso</a> s t a b = <a href="#v:ReifyIso">ReifyIso</a> {<ul class="subs"><li><a href="#v:reflectIso">reflectIso</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIso">SimpleIso</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:SimpleReifiedIso">SimpleReifiedIso</a> s a = <a href="Control-Lens-Iso.html#t:ReifiedIso">ReifiedIso</a> s s a a</li></ul></div><div id="interface"><h1 id="g:1">Isomorphism Lenses
10 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> k f. (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; k (a -&gt; f b) (s -&gt; f t)<a href="src/Control-Lens-Iso.html#Iso" class="link">Source</a></p><div class="doc"><p>Isomorphism families can be composed with other lenses using either (<code>.</code>) and <code>id</code>
11 12
  from the Prelude or from Control.Category. However, if you compose them
12 13
  with each other using (<code>.</code>) from the Prelude, they will be dumbed down to a
@@ -18,21 +19,24 @@
18 19
 </p><pre>
19 20
  <code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g) &#8801; f
20 21
  <code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g)) &#8801; g
21  
- <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> f g) h &#8801; g <code>.</code> h <code>.</code> f
22  
- <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g')) h &#8801; f <code>.</code> h <code>.</code> g
  22
+ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g) h &#8801; g <code>.</code> h <code>.</code> f
  23
+ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g)) h &#8801; f <code>.</code> h <code>.</code> g
23 24
 </pre><pre>iso :: (s -&gt; a) -&gt; (a -&gt; s) -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s a</pre></div></div><div class="top"><p class="src"><a name="v:isos" class="def">isos</a> :: (<a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k, Functor f) =&gt; (s -&gt; a) -&gt; (a -&gt; s) -&gt; (t -&gt; b) -&gt; (b -&gt; t) -&gt; k (a -&gt; f b) (s -&gt; f t)<a href="src/Control-Lens-Iso.html#isos" class="link">Source</a></p><div class="doc"><p>Build an isomorphism family from two pairs of inverse functions
24 25
 </p><pre>
25 26
  <code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> sa as tb bt) &#8801; sa
26 27
  <code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> sa as tb bt)) &#8801; as
27 28
  <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> sa as tb bt) ab &#8801; bt <code>.</code> ab <code>.</code> sa
28  
- <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> ac ca bd db')) ab &#8801; bd <code>.</code> ab <code>.</code> ca
29  
-</pre><pre>isos :: (s -&gt; a) -&gt; (a -&gt; s) -&gt; (t -&gt; b) -&gt; (b -&gt; t) -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b</pre></div></div><div class="top"><p class="src"><a name="v:ala" class="def">ala</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((s -&gt; a) -&gt; e -&gt; a) -&gt; e -&gt; s<a href="src/Control-Lens-Iso.html#ala" class="link">Source</a></p><div class="doc"><p>Based on <code>ala</code> from Conor McBride's work on Epigram.
  29
+ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:isos">isos</a></code> ac ca bd db)) ab &#8801; bd <code>.</code> ab <code>.</code> ca
  30
+</pre><pre>isos :: (s -&gt; a) -&gt; (a -&gt; s) -&gt; (t -&gt; b) -&gt; (b -&gt; t) -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b</pre></div></div><h1 id="g:2">Working with isomorphisms
  31
+</h1><div class="top"><p class="src"><a name="v:ala" class="def">ala</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((s -&gt; a) -&gt; e -&gt; a) -&gt; e -&gt; s<a href="src/Control-Lens-Iso.html#ala" class="link">Source</a></p><div class="doc"><p>Based on <code>ala</code> from Conor McBride's work on Epigram.
30 32
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>:m + Data.Monoid.Lens Data.Foldable
31 33
 </code></strong><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>ala _sum foldMap [1,2,3,4]
32 34
 </code></strong>10
33 35
 </pre></div></div><div class="top"><p class="src"><a name="v:auf" class="def">auf</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; ((b -&gt; a) -&gt; e -&gt; a) -&gt; (b -&gt; s) -&gt; e -&gt; s<a href="src/Control-Lens-Iso.html#auf" class="link">Source</a></p><div class="doc"><p>Based on <code>ala'</code> from Conor McBride's work on Epigram.
34 36
 </p><p>Mnemonically, the German <em>auf</em> plays a similar role to /</p></div></div><div class="top"><p class="src"><a name="v:under" class="def">under</a> ::  <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> (a -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b) (s -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> t) -&gt; (s -&gt; t) -&gt; a -&gt; b<a href="src/Control-Lens-Iso.html#under" class="link">Source</a></p><div class="doc"><p>The opposite of working <code><a href="Control-Lens-Setter.html#v:over">over</a></code> a Setter is working <code><a href="Control-Lens-Iso.html#v:under">under</a></code> an Isomorphism.
35  
-</p><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> = <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code>.</code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code></pre><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; (s -&gt; t) -&gt; a -&gt; b</pre></div></div><h1 id="g:2">Primitive isomorphisms
  37
+</p><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> = <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code>.</code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code></pre><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; (s -&gt; t) -&gt; a -&gt; b</pre></div></div><div class="top"><p class="src"><a name="v:mapping" class="def">mapping</a> :: Functor f =&gt; <a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</a> s a -&gt; <a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</a> (f s) (f a)<a href="src/Control-Lens-Iso.html#mapping" class="link">Source</a></p><div class="doc"><p>This can be used to lift any <code><a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</a></code> into an arbitrary functor.
  38
+</p></div></div><div class="top"><p class="src"><a name="v:review" class="def">review</a> ::  <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> s) s t a b -&gt; a -&gt; s<a href="src/Control-Lens-Iso.html#review" class="link">Source</a></p><div class="doc"><p>This can be used to turn an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> around and <code><a href="Control-Lens-Getter.html#v:view">view</a></code> the other way.
  39
+</p><pre><code><a href="Control-Lens-Iso.html#v:review">review</a></code> = <code><a href="Control-Lens-Getter.html#v:view">view</a></code> <code>.</code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code></pre></div></div><h1 id="g:3">Primitive isomorphisms
36 40
 </h1><div class="top"><p class="src"><a name="v:from" class="def">from</a> :: <a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a> a b -&gt; k b a<a href="src/Control-Lens-Isomorphic.html#from" class="link">Source</a></p><div class="doc"><p>Invert an isomorphism.
37 41
 </p><p>Note to compose an isomorphism and receive an isomorphism in turn you'll need to use
38 42
  <code>Category</code>
@@ -51,7 +55,7 @@
51 55
  the resulting isomorphism as a function.
52 56
 </p></div><p class="src"><a name="v:isomap" class="def">isomap</a> ::  ((a -&gt; b) -&gt; c -&gt; d) -&gt; ((b -&gt; a) -&gt; d -&gt; c) -&gt; k a b -&gt; k c d<a href="src/Control-Lens-Isomorphic.html#isomap" class="link">Source</a></p><div class="doc"><p>Map a morphism in the target category using an isomorphism between morphisms
53 57
  in Hask.
54  
-</p></div></div><div class="subs instances"><p id="control.i:Isomorphic" class="caption collapser" onclick="toggleSection('i:Isomorphic')">Instances</p><div id="section.i:Isomorphic" class="show"><table><tr><td class="src"><a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:3">Common Isomorphisms
  58
+</p></div></div><div class="subs instances"><p id="control.i:Isomorphic" class="caption collapser" onclick="toggleSection('i:Isomorphic')">Instances</p><div id="section.i:Isomorphic" class="show"><table><tr><td class="src"><a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Iso.html#t:Isomorphic">Isomorphic</a> <a href="Control-Lens-Iso.html#t:Isomorphism">Isomorphism</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:4">Common Isomorphisms
55 59
 </h2><div class="top"><p class="src"><a name="v:_const" class="def">_const</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b (Const a c) (Const b d)<a href="src/Control-Lens-Iso.html#_const" class="link">Source</a></p><div class="doc"><p>This isomorphism can be used to wrap or unwrap a value in <code>Const</code>
56 60
 </p><pre>
57 61
  x <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Iso.html#v:_const">_const</a></code> &#8801; <code>Const</code> x
@@ -60,11 +64,41 @@
60 64
 </p><pre>
61 65
  x^.identity &#8801; <code>Identity</code> x
62 66
  <code>Identity</code> x <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code> <code><a href="Control-Lens-Iso.html#v:identity">identity</a></code> &#8801; x
63  
-</pre></div></div><div class="top"><p class="src"><a name="v:simple" class="def">simple</a> ::  <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a b a b<a href="src/Control-Lens-Iso.html#simple" class="link">Source</a></p><div class="doc"><p>Composition with this isomorphism is occasionally useful when your <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>,
  67
+</pre></div></div><div class="top"><p class="src"><a name="v:simple" class="def">simple</a> ::  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> a a<a href="src/Control-Lens-Iso.html#simple" class="link">Source</a></p><div class="doc"><p>Composition with this isomorphism is occasionally useful when your <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>,
64 68
  <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> or <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> has a constraint on an unused
65 69
  argument to force that argument to agree with the
66 70
  type of a used argument and avoid <code>ScopedTypeVariables</code> or other ugliness.
67  
-</p></div></div><h1 id="g:4">Storing Isomorphisms
  71
+</p></div></div><div class="top"><p class="src"><a name="v:non" class="def">non</a> :: Eq a =&gt; a -&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (Maybe a) a<a href="src/Control-Lens-Iso.html#non" class="link">Source</a></p><div class="doc"><p>If <code>v</code> is an element of a type <code>a</code>, and <code>a'</code> is <code>a</code> sans the element <code>v</code>, then <code>non v</code> is an isomorphism from
  72
+ <code>Maybe a'</code> to <code>a</code>.
  73
+</p><p>Keep in mind this is only a real isomorphism if you treat the domain as being <code><code>Maybe</code> (a sans v)</code>
  74
+</p><p>This is practically quite useful when you want to have a map where all the entries should have non-zero values.
  75
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] &amp; at &quot;hello&quot; . non 0 +~ 2
  76
+</code></strong>fromList [(&quot;hello&quot;,3)]
  77
+</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] &amp; at &quot;hello&quot; . non 0 -~ 1
  78
+</code></strong>fromList []
  79
+</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] ^. at &quot;hello&quot; . non 0
  80
+</code></strong>1
  81
+</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [] ^. at &quot;hello&quot; . non 0
  82
+</code></strong>0
  83
+</pre><p>This combinator is also particularly useful when working with nested maps.
  84
+</p><p><em>e.g.</em> When you want to create the nested map when it is missing:
  85
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.empty &amp; at &quot;hello&quot; . non Map.empty . at &quot;world&quot; ?~ &quot;!!!&quot;
  86
+</code></strong>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])]
  87
+</pre><p>and when have deleting the last entry from the nested map mean that we 
  88
+ should delete its entry from the surrounding one:
  89
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])] &amp; at &quot;hello&quot; . non Map.empty . at &quot;world&quot; .~ Nothing
  90
+</code></strong>fromList []
  91
+</pre></div></div><div class="top"><p class="src"><a name="v:enum" class="def">enum</a> :: Enum a =&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> Int a<a href="src/Control-Lens-Iso.html#enum" class="link">Source</a></p><div class="doc"><p>This isomorphism can be used to convert to or from an instance of <code>Enum</code>.
  92
+</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>LT^.from enum
  93
+</code></strong>0
  94
+</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>97^.enum :: Char
  95
+</code></strong>'a'
  96
+</pre><p>Note: this is only an isomorphism from the numeric range actually used
  97
+ and it is a bit of a pleasant fiction, since there are questionable
  98
+ <code>Enum</code> instances for <code>Double</code>, and <code>Float</code> that exist solely for
  99
+ <code>[1.0 .. 4.0]</code> sugar and the instances for those and <code>Integer</code> don't
  100
+ cover all values in their range.
  101
+</p></div></div><h1 id="g:5">Storing Isomorphisms
68 102
 </h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ReifiedIso" class="def">ReifiedIso</a> s t a b <a href="src/Control-Lens-Iso.html#ReifiedIso" class="link">Source</a></p><div class="doc"><p>Useful for storing isomorphisms in containers.
69  
-</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReifyIso" class="def">ReifyIso</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:reflectIso" class="def">reflectIso</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><h1 id="g:5">Simplicity
  103
+</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ReifyIso" class="def">ReifyIso</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:reflectIso" class="def">reflectIso</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><h1 id="g:6">Simplicity
70 104
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SimpleIso" class="def">SimpleIso</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a<a href="src/Control-Lens-Iso.html#SimpleIso" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Iso.html#t:SimpleIso">SimpleIso</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:SimpleReifiedIso" class="def">SimpleReifiedIso</a> s a = <a href="Control-Lens-Iso.html#t:ReifiedIso">ReifiedIso</a> s s a a<a href="src/Control-Lens-Iso.html#SimpleReifiedIso" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Iso.html#t:SimpleReifiedIso">SimpleReifiedIso</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:ReifiedIso">ReifiedIso</a></code></pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.1</p></div></body></html>
2  Control-Lens-Isomorphic.html
... ...
@@ -1,7 +1,7 @@
1 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.Isomorphic</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Isomorphic.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Isomorphic.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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Isomorphic</p></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> Category k =&gt; <a href="#t:Isomorphic">Isomorphic</a> k  <span class="keyword">where</span><ul class="subs"><li><a href="#v:isomorphic">isomorphic</a> ::  (a -&gt; b) -&gt; (b -&gt; a) -&gt; k a b</li><li><a href="#v:isomap">isomap</a> ::  ((a -&gt; b) -&gt; c -&gt; d) -&gt; ((b -&gt; a) -&gt; d -&gt; c) -&gt; k a b -&gt; k c d</li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Isomorphism">Isomorphism</a> a b = <a href="#v:Isomorphism">Isomorphism</a> (a -&gt; b) (b -&gt; a)</li><li class="src short"><a href="#v:from">from</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphism">Isomorphism</a> a b -&gt; k b a</li><li class="src short"><a href="#v:via">via</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphism">Isomorphism</a> a b -&gt; k a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> Category k =&gt; <a name="t:Isomorphic" class="def">Isomorphic</a> k  <span class="keyword">where</span><a href="src/Control-Lens-Isomorphic.html#Isomorphic" class="link">Source</a></p><div class="doc"><p>Used to provide overloading of isomorphism application
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Isomorphic.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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Isomorphic</p></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> Category k =&gt; <a href="#t:Isomorphic">Isomorphic</a> k  <span class="keyword">where</span><ul class="subs"><li><a href="#v:isomorphic">isomorphic</a> ::  (a -&gt; b) -&gt; (b -&gt; a) -&gt; k a b</li><li><a href="#v:isomap">isomap</a> ::  ((a -&gt; b) -&gt; c -&gt; d) -&gt; ((b -&gt; a) -&gt; d -&gt; c) -&gt; k a b -&gt; k c d</li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Isomorphism">Isomorphism</a> a b = <a href="#v:Isomorphism">Isomorphism</a> (a -&gt; b) (b -&gt; a)</li><li class="src short"><a href="#v:from">from</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphism">Isomorphism</a> a b -&gt; k b a</li><li class="src short"><a href="#v:via">via</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphism">Isomorphism</a> a b -&gt; k a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> Category k =&gt; <a name="t:Isomorphic" class="def">Isomorphic</a> k  <span class="keyword">where</span><a href="src/Control-Lens-Isomorphic.html#Isomorphic" class="link">Source</a></p><div class="doc"><p>Used to provide overloading of isomorphism application
5 5
 </p><p>This is a <code>Category</code> with a canonical mapping to it from the
6 6
  category of isomorphisms over Haskell types.
7 7
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:isomorphic" class="def">isomorphic</a> ::  (a -&gt; b) -&gt; (b -&gt; a) -&gt; k a b<a href="src/Control-Lens-Isomorphic.html#isomorphic" class="link">Source</a></p><div class="doc"><p>Build this morphism out of an isomorphism
2  Control-Lens-Loupe.html
... ...
@@ -1,7 +1,7 @@
1 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.Loupe</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Loupe.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Loupe.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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Loupe</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Loupe.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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Loupe</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
5 5
 </a></li><li><a href="#g:2">Simplified
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.
92  Control-Lens-Plated.html
... ...
@@ -1,13 +1,11 @@
1 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.Plated</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Plated.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Plated.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.3: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Plated</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Uniplate
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Plated.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.4: 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-Inferred</td></tr></table><p class="caption">Control.Lens.Plated</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Uniplate
5 5
 </a></li><li><a href="#g:2">Uniplate Combinators
6 6
 </a></li><li><a href="#g:3">Compos
7  
-</a></li><li><a href="#g:4">Indexing into a Traversal
8  
-</a></li><li><a href="#g:5">Parts
9  
-</a><ul><li><a href="#g:6">Unsafe Operations
10  
-</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The name &quot;plate&quot; stems originally from &quot;boilerplate&quot;, which was the term
  7
+</a></li><li><a href="#g:4">Parts
  8
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The name &quot;plate&quot; stems originally from &quot;boilerplate&quot;, which was the term
11 9
  used by the &quot;Scrap Your Boilerplate&quot; papers, and later inherited by Neil
12 10
  Mitchell's &quot;Uniplate&quot;.
13 11
 </p><p><a href="http://community.haskell.org/~ndm/uniplate/">http://community.haskell.org/~ndm/uniplate/</a>
@@ -31,7 +29,7 @@
31 29
 </p><p>It is often beneficial to use the combinators in this module with the combinators
32 30
  from <code>Data.Data.Lens</code> or <code>GHC.Generics.Lens</code> to make it easier to automatically
33 31
  derive definitions for <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>, or to derive custom traversals.
34  
-</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:Simple">Simple</a> <a href="Control-Lens-Traversal.html#t:Traversal">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:childrenOn">childrenOn</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; s -&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; Maybe a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOf">rewriteOf</a> ::  <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; Maybe 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:Setting">Setting</a> s t a a -&gt; (a -&gt; Maybe a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteOnOf">rewriteOnOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; Maybe a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteM">rewriteM</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m (Maybe a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOf">rewriteMOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m (Maybe a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOn">rewriteMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; (a -&gt; m (Maybe a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:rewriteMOnOf">rewriteMOnOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m (Maybe 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:SimpleSetting">SimpleSetting</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:Setting">Setting</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:Setting">Setting</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformM">transformM</a> :: (Monad 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> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOn">transformMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad 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> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s a a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m a</li><li class="src short"><a href="#v:descend">descend</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:descendOf">descendOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t</li><li class="src short"><a href="#v:descendOn">descendOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:descendOnOf">descendOnOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a b -&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b u v -&gt; (u -&gt; v) -&gt; s -&gt; t</li><li class="src short"><a href="#v:descendA">descendA</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; f a) -&gt; a -&gt; f a</li><li class="src short"><a href="#v:descendAOf">descendAOf</a> :: Applicative f =&gt; <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:descendAOn">descendAOn</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a a -&gt; (a -&gt; f a) -&gt; s -&gt; f t</li><li class="src short"><a href="#v:descendAOnOf">descendAOnOf</a> :: Applicative f =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f u v s t -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; (a -&gt; f b) -&gt; u -&gt; f v</li><li class="src short"><a href="#v:descendA_">descendA_</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; f b) -&gt; a -&gt; f ()</li><li class="src short"><a href="#v:descendAOf_">descendAOf_</a> :: Applicative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:descendAOn_">descendAOn_</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a a -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:descendAOnOf_">descendAOnOf_</a> :: Applicative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a b a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</li><li class="src short"><a href="#v:descendM">descendM</a> :: (Monad 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:descendMOf">descendMOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a b -&gt; (a -&gt; m b) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:descendMOn">descendMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:descendMOnOf">descendMOnOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:descendM_">descendM_</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m b) -&gt; a -&gt; m ()</li><li class="src short"><a href="#v:descendMOf_">descendMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:descendMOn_">descendMOn_</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a a -&gt; (a -&gt; m r) -&gt; s -&gt; m ()</li><li class="src short"><a href="#v:descendMOnOf_">descendMOnOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a b a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()</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-Type.html#t:SimpleLensLike">SimpleLensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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:holesOf">holesOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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:holesOn">holesOn</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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] 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:element">element</a> :: <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> t =&gt; Int -&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> (t a) a</li><li class="src short"><a href="#v:elementOf">elementOf</a> :: Functor f =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; Int -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a a</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:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> a [a]</li><li class="src short"><a href="#v:partsOf">partsOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t [a] [a]</li><li class="src short"><a href="#v:unsafePartsOf">unsafePartsOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a b) s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t [a] [b]</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:Simple">Simple</a> <a href="Control-Lens-Traversal.html#t:Traversal">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; Maybe a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:rewriteOf">rewriteOf</a> ::  <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; Maybe 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:Setting">Setting</a> s t a a -&gt; (a -&gt; Maybe a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteOnOf">rewriteOnOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; Maybe a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:rewriteM">rewriteM</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m (Maybe a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOf">rewriteMOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m (Maybe a)) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:rewriteMOn">rewriteMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; (a -&gt; m (Maybe a)) -&gt; s -&gt; m t</li><li class="src short"><a href="#v:rewriteMOnOf">rewriteMOnOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m (Maybe 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:SimpleSetting">SimpleSetting</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:Setting">Setting</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:Setting">Setting</a> s t a a -&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a a -&gt; (a -&gt; a) -&gt; s -&gt; t</li><li class="src short"><a href="#v:transformM">transformM</a> :: (Monad 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> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:transformMOn">transformMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad 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> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s a a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad 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-Type.html#t:SimpleLensLike">SimpleLensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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> (Endo [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:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> a [a]</li></ul></div><div id="interface"><h1 id="g:1">Uniplate
35 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.
36 34
 </p><p><em>Example 1</em>:
37 35
 </p><pre>
@@ -94,8 +92,7 @@
94 92
 </p><p>The default definition finds no children.
95 93
 </p></div></div><div class="subs instances"><p id="control.i:Plated" class="caption collapser" onclick="toggleSection('i:Plated')">Instances</p><div id="section.i:Plated" class="show"><table><tr><td class="src"><a href="Control-Lens-Plated.html#t:Plated">Plated</a> [a]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Plated.html#t:Plated">Plated</a> (Tree a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Uniplate Combinators
96 94
 </h1><div class="top"><p class="src"><a name="v:children" class="def">children</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; a -&gt; [a]<a href="src/Control-Lens-Plated.html#children" class="link">Source</a></p><div class="doc"><p>Extract the immediate descendants of a <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> container.
97  
-</p><pre><code><a href="Control-Lens-Plated.html#v:children">children</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:childrenOn" class="def">childrenOn</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] s t a b -&gt; s -&gt; [a]<a href="src/Control-Lens-Plated.html#childrenOn" class="link">Source</a></p><div class="doc"><p>Provided for compatibility with <code>uniplate</code>.
98  
-</p><pre><code><a href="Control-Lens-Plated.html#v:childrenOn">childrenOn</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:childrenOn">childrenOn</a></code> :: <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a -&gt; s -&gt; [a]</pre></div></div><div class="top"><p class="src"><a name="v:rewrite" class="def">rewrite</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; Maybe a) -&gt; a -&gt; a<a href="src/Control-Lens-Plated.html#rewrite" class="link">Source</a></p><div class="doc"><p>Rewrite by applying a rule everywhere you can. Ensures that the rule cannot
  95
+</p><pre><code><a href="Control-Lens-Plated.html#v:children">children</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:toListOf">toListOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:rewrite" class="def">rewrite</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; Maybe a) -&gt; a -&gt; a<a href="src/Control-Lens-Plated.html#rewrite" class="link">Source</a></p><div class="doc"><p>Rewrite by applying a rule everywhere you can. Ensures that the rule cannot
99 96
  be applied anywhere in the result:
100 97
 </p><pre>propRewrite r x = <code>all</code> (<code><a href="Data-Just.html#t:isNothing">isNothing</a></code> . r) (<code><a href="Control-Lens-Plated.html#v:universe">universe</a></code> (<code><a href="Control-Lens-Plated.html#v:rewrite">rewrite</a></code> r x))</pre><p>Usually <code><a href="Control-Lens-Plated.html#v:transform">transform</a></code> is more appropriate, but <code><a href="Control-Lens-Plated.html#v:rewrite">rewrite</a></code> can give better
101 98
  compositionality. Given two single transformations <code>f</code> and <code>g</code>, you can
@@ -159,34 +156,7 @@
159 156
 </p><pre><code><a href="Control-Lens-Plated.html#v:transformMOf">transformMOf</a></code> :: <code>Monad</code> m =&gt; 'Simple <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; m a) -&gt; a -&gt; m a</pre></div></div><div class="top"><p class="src"><a name="v:transformMOn" class="def">transformMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t<a href="src/Control-Lens-Plated.html#transformMOn" class="link">Source</a></p><div class="doc"><p>Transform every element in the tree in a region indicated by a supplied <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, in a bottom-up manner, monadically.
160 157
 </p><pre><code><a href="Control-Lens-Plated.html#v:transformMOn">transformMOn</a></code> :: (<code>Monad</code> m, <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:transformMOnOf" class="def">transformMOnOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s a a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m a<a href="src/Control-Lens-Plated.html#transformMOnOf" class="link">Source</a></p><div class="doc"><p>Transform every element in a tree that lies in a region indicated by a supplied <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, walking with a user supplied <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> in
161 158
  a bottom-up manner with a monadic effect.
162  
-</p><pre><code><a href="Control-Lens-Plated.html#v:transformMOnOf">transformMOnOf</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:descend" class="def">descend</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; a) -&gt; a -&gt; a<a href="src/Control-Lens-Plated.html#descend" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure. (a.k.a <code>composOp</code> from Bj</p></div></div><div class="top"><p class="src"><a name="v:descendOf" class="def">descendOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t<a href="src/Control-Lens-Plated.html#descendOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure using a user specified recursion scheme. This is <code><a href="Control-Lens-Setter.html#v:over">over</a></code>, but it is supplied here
163  
- for consistency with the uniplate API.
164  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendOf">descendOf</a></code> &#8801; <code><a href="Control-Lens-Setter.html#v:over">over</a></code></pre><pre>
165  
- <code><a href="Control-Lens-Plated.html#v:descendOf">descendOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s a -&gt; (a -&gt; a) -&gt; s -&gt; s
166  
- <code><a href="Control-Lens-Plated.html#v:descendOf">descendOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; a) -&gt; s -&gt; s
167  
-</pre></div></div><div class="top"><p class="src"><a name="v:descendOn" class="def">descendOn</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a a -&gt; (a -&gt; a) -&gt; s -&gt; t<a href="src/Control-Lens-Plated.html#descendOn" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts of the structure delimited by a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>.
168  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendOn">descendOn</a></code> b &#8801; <code><a href="Control-Lens-Setter.html#v:over">over</a></code> (b <code>.</code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendOn">descendOn</a></code> :: <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a =&gt; <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t -&gt; (t -&gt; t) -&gt; s -&gt; s</pre></div></div><div class="top"><p class="src"><a name="v:descendOnOf" class="def">descendOnOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> s t a b -&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b u v -&gt; (u -&gt; v) -&gt; s -&gt; t<a href="src/Control-Lens-Plated.html#descendOnOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts delimited by one <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>, using another.
169  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendOnOf">descendOnOf</a></code> b l &#8801; <code><a href="Control-Lens-Setter.html#v:over">over</a></code> (b <code>.</code> l)</pre><pre>
170  
- <code><a href="Control-Lens-Plated.html#v:descendOnOf">descendOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s a    -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a a    -&gt; (a -&gt; a) -&gt; s -&gt; s
171  
- <code><a href="Control-Lens-Plated.html#v:descendOnOf">descendOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; a) -&gt; s -&gt; s
172  
-</pre></div></div><div class="top"><p class="src"><a name="v:descendA" class="def">descendA</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; f a) -&gt; a -&gt; f a<a href="src/Control-Lens-Plated.html#descendA" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure with an <code>Applicative</code> effect, this is <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>, but it is supplied
173  
- for consistency with the uniplate API.
174  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendA">descendA</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:descendAOf" class="def">descendAOf</a> :: Applicative f =&gt; <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<a href="src/Control-Lens-Plated.html#descendAOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure using a user specified recursion scheme and <code>Applicative</code> effects. This is <code>id</code>, but it is supplied
175  
- for consistency with the uniplate API.
176  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOf">descendAOf</a></code> &#8801; <code>id</code></pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOf">descendAOf</a></code> :: <code>Applicative</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a =&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:descendAOn" class="def">descendAOn</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a a -&gt; (a -&gt; f a) -&gt; s -&gt; f t<a href="src/Control-Lens-Plated.html#descendAOn" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts of the structure delimited by a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> with <code>Applicative</code> effects.
177  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOn">descendAOn</a></code> b &#8801; b <code>.</code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOn">descendAOn</a></code> :: (<code>Applicative</code> f, Plated' a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; f a) -&gt; s -&gt; f s</pre></div></div><div class="top"><p class="src"><a name="v:descendAOnOf" class="def">descendAOnOf</a> :: Applicative f =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f u v s t -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a b -&gt; (a -&gt; f b) -&gt; u -&gt; f v<a href="src/Control-Lens-Plated.html#descendAOnOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts delimited by one <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, using another with <code>Applicative</code> effects.
178  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOnOf">descendAOnOf</a></code> &#8801; (<code>.</code>)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOnOf">descendAOnOf</a></code> :: <code>Applicative</code> f =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; f a) -&gt; s -&gt; f s</pre></div></div><div class="top"><p class="src"><a name="v:descendA_" class="def">descendA_</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; f b) -&gt; a -&gt; f ()<a href="src/Control-Lens-Plated.html#descendA_" class="link">Source</a></p><div class="doc"><pre><code><a href="Control-Lens-Plated.html#v:descendA_">descendA_</a></code> &#8801; traverseOf_' <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:descendAOf_" class="def">descendAOf_</a> :: Applicative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()<a href="src/Control-Lens-Plated.html#descendAOf_" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure using a user specified recursion scheme and <code>Applicative</code> effects, without reconstructing the structure behind you.
179  
-</p><p>This is just <code><a href="Control-Lens-Fold.html#v:traverseOf_">traverseOf_</a></code>, but is provided for consistency.
180  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOf_">descendAOf_</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:traverseOf_">traverseOf_</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOf_">descendAOf_</a></code> :: <code>Applicative</code> f =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a =&gt; (a -&gt; f r) -&gt; s -&gt; f ()</pre></div></div><div class="top"><p class="src"><a name="v:descendAOn_" class="def">descendAOn_</a> :: (Applicative f, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a a -&gt; (a -&gt; f r) -&gt; s -&gt; f ()<a href="src/Control-Lens-Plated.html#descendAOn_" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts of the structure delimited by a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> with monadic effects.
181  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOn_">descendAOn_</a></code> b &#8801; <code><a href="Control-Lens-Fold.html#v:traverseOf_">traverseOf_</a></code> (b <code>.</code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOn_">descendAOn_</a></code> :: (<code>Applicative</code> f, <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</pre></div></div><div class="top"><p class="src"><a name="v:descendAOnOf_" class="def">descendAOnOf_</a> :: Applicative f =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a b a b -&gt; (a -&gt; f r) -&gt; s -&gt; f ()<a href="src/Control-Lens-Plated.html#descendAOnOf_" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts delimited by one <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>, using another with <code>Applicative</code> effects, without reconstructing the structure behind you.
182  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendAOnOf_">descendAOnOf_</a></code> b l &#8801; <code><a href="Control-Lens-Fold.html#v:traverseOf_">traverseOf_</a></code> (b <code>.</code> l)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendAOnOf_">descendAOnOf_</a></code> :: <code>Applicative</code> f =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> a a -&gt; (a -&gt; f r) -&gt; s -&gt; f ()</pre></div></div><div class="top"><p class="src"><a name="v:descendM" class="def">descendM</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m a) -&gt; a -&gt; m a<a href="src/Control-Lens-Plated.html#descendM" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure with a monadic effect. (a.k.a <code>composOpM</code> from Bj</p></div></div><div class="top"><p class="src"><a name="v:descendMOf" class="def">descendMOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a b -&gt; (a -&gt; m b) -&gt; s -&gt; m t<a href="src/Control-Lens-Plated.html#descendMOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure using a user specified recursion scheme and monadic effects. This is <code>id</code>, but it is
183  
- supplied for consistency with the uniplate API.
184  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOf">descendMOf</a></code> &#8801; <code><a href="Control-Lens-Traversal.html#v:mapMOf">mapMOf</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:descendMOf">descendMOf</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a =&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:descendMOn" class="def">descendMOn</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t<a href="src/Control-Lens-Plated.html#descendMOn" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts of the structure delimited by a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> with monadic effects.
185  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOn">descendMOn</a></code> b &#8801; <code><a href="Control-Lens-Traversal.html#v:mapMOf">mapMOf</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:descendMOn">descendMOn</a></code> :: (<code>Monad</code> m, <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:descendMOnOf" class="def">descendMOnOf</a> :: Monad m =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (WrappedMonad m) s t a a -&gt; <a href="Control-Lens-Type.html#t:SimpleLensLike">SimpleLensLike</a> (WrappedMonad m) a a -&gt; (a -&gt; m a) -&gt; s -&gt; m t<a href="src/Control-Lens-Plated.html#descendMOnOf" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts delimited by one <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, using another with monadic effects.
186  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOnOf">descendMOnOf</a></code> b l &#8801; <code><a href="Control-Lens-Traversal.html#v:mapMOf">mapMOf</a></code> (b <code>.</code> l)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendMOnOf">descendMOnOf</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:descendM_" class="def">descendM_</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; (a -&gt; m b) -&gt; a -&gt; m ()<a href="src/Control-Lens-Plated.html#descendM_" class="link">Source</a></p><div class="doc"><p>Descend one level into a structure with monadic effects (a.k.a <code>composOpM</code> from Bj</p></div></div><div class="top"><p class="src"><a name="v:descendMOf_" class="def">descendMOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()<a href="src/Control-Lens-Plated.html#descendMOf_" class="link">Source</a></p><div class="doc"><p>Recurse one level into a structure using a user specified recursion scheme and monadic effects. This is just <code><a href="Control-Lens-Fold.html#v:mapMOf_">mapMOf_</a></code>, but is provided for consistency.
187  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOf_">descendMOf_</a></code> &#8801; <code><a href="Control-Lens-Fold.html#v:mapMOf_">mapMOf_</a></code></pre><pre><code><a href="Control-Lens-Plated.html#v:descendMOf_">descendMOf_</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a =&gt; (a -&gt; m a) -&gt; s -&gt; m ()</pre></div></div><div class="top"><p class="src"><a name="v:descendMOn_" class="def">descendMOn_</a> :: (Monad m, <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a) =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a a -&gt; (a -&gt; m r) -&gt; s -&gt; m ()<a href="src/Control-Lens-Plated.html#descendMOn_" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts of the structure delimited by a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> with monadic effects.
188  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOn_">descendMOn_</a></code> b &#8801; <code><a href="Control-Lens-Fold.html#v:mapMOf_">mapMOf_</a></code> (b <code>.</code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code>)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendMOn_">descendMOn_</a></code> :: (<code>Monad</code> m, <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> a) =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; (a -&gt; m r) -&gt; b -&gt; m ()</pre></div></div><div class="top"><p class="src"><a name="v:descendMOnOf_" class="def">descendMOnOf_</a> :: Monad m =&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) s t a b -&gt; <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a b a b -&gt; (a -&gt; m r) -&gt; s -&gt; m ()<a href="src/Control-Lens-Plated.html#descendMOnOf_" class="link">Source</a></p><div class="doc"><p>Recurse one level into the parts delimited by one <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, using another with monadic effects.
189  
-</p><pre><code><a href="Control-Lens-Plated.html#v:descendMOnOf_">descendMOnOf_</a></code> b l &#8801; <code><a href="Control-Lens-Fold.html#v:mapMOf_">mapMOf_</a></code> (b <code>.</code> l)</pre><pre><code><a href="Control-Lens-Plated.html#v:descendMOnOf_">descendMOnOf_</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> s a -&gt; <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> a a -&gt; (a -&gt; m a) -&gt; s -&gt; m ()</pre></div></div><div class="top"><p class="src"><a name="v:contexts" class="def">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]<a href="src/Control-Lens-Plated.html#contexts" class="link">Source</a></p><div class="doc"><p>Return a list of all of the editable contexts for every location in the structure, recursively.
  159
+</p><pre><code><a href="Control-Lens-Plated.html#v:transformMOnOf">transformMOnOf</a></code> :: <code>Monad</code> m =&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; (a -&gt; m a) -&gt; s -&gt; m s</pre></div></div><div class="top"><p class="src"><a name="v:contexts" class="def">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]<a href="src/Control-Lens-Plated.html#contexts" class="link">Source</a></p><div class="doc"><p>Return a list of all of the editable contexts for every location in the structure, recursively.
190 160
 </p><pre>
191 161
  propUniverse x = <code><a href="Control-Lens-Plated.html#v:universe">universe</a></code> x == <code>map</code> <code>pos</code> (<code><a href="Control-Lens-Plated.html#v:contexts">contexts</a></code> x)
192 162
  propId x = <code>all</code> (<code>==</code> x) [extract w | w &lt;- <code><a href="Control-Lens-Plated.html#v:contexts">contexts</a></code> x]
@@ -202,58 +172,22 @@
202 172
 </p><pre>
203 173
  propChildren x = <code><a href="Control-Lens-Plated.html#v:children">children</a></code> l x <code>==</code> <code>map</code> <code>pos</code> (<code><a href="Control-Lens-Plated.html#v:holes">holes</a></code> l x)
204 174
  propId x = <code>all</code> (<code>==</code> x) [extract w | w &lt;- <code><a href="Control-Lens-Plated.html#v:holes">holes</a></code> l x]
205  
-</pre><pre><code><a href="Control-Lens-Plated.html#v:holes">holes</a></code> = <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:holesOf" class="def">holesOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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#holesOf" class="link">Source</a></p><div class="doc"><p>The one-level version of <code><a href="Control-Lens-Plated.html#v:contextsOf">contextsOf</a></code>. This extracts a list of the immediate children according to a given <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> as editable contexts.
206  
-</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.
207  
-</p><pre>
208  
- propChildren l x = <code>childrenOf</code> l x <code>==</code> <code>map</code> <code>pos</code> (<code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> l x)
209  
- propId l x = <code>all</code> (<code>==</code> x) [extract w | w &lt;- <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> l x]
210  
-</pre><pre>
211  
- <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>Iso</code> s a       -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
212  
- <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
213  
- <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
214  
-</pre></div></div><div class="top"><p class="src"><a name="v:holesOn" class="def">holesOn</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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#holesOn" class="link">Source</a></p><div class="doc"><p>An alias for <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code>, provided for consistency with the other combinators.
215  
-</p><pre><code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code></pre><pre>
  175
+</pre><pre><code><a href="Control-Lens-Plated.html#v:holes">holes</a></code> = <code><a href="Control-Lens-Traversal.html#v:holesOf">holesOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:holesOn" class="def">holesOn</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a 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#holesOn" class="link">Source</a></p><div class="doc"><p>An alias for <code><a href="Control-Lens-Traversal.html#v:holesOf">holesOf</a></code>, provided for consistency with the other combinators.
  176
+</p><pre><code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> &#8801; <code><a href="Control-Lens-Traversal.html#v:holesOf">holesOf</a></code></pre><pre>
216 177
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>Iso</code> s a       -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
217 178
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
218 179
  <code><a href="Control-Lens-Plated.html#v:holesOn">holesOn</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
219 180
 </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-Traversal.html#t:Traversal">Traversal</a></code>, using another.
220  
-</p><pre><code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> b l &#8801; <code><a href="Control-Lens-Plated.html#v:holesOf">holesOf</a></code> (b <code>.</code> l)</pre><pre>
  181
+</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>.</code> l)</pre><pre>
221 182
  <code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>Iso</code> s a       -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>Iso</code> a a       -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
222 183
  <code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a a      -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
223 184
  <code><a href="Control-Lens-Plated.html#v:holesOnOf">holesOnOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a -&gt; s -&gt; [<code><a href="Control-Lens-Internal.html#t:Context">Context</a></code> a a s]
224 185
 </pre></div></div><div class="top"><p class="src"><a name="v:para" class="def">para</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r<a href="src/Control-Lens-Plated.html#para" class="link">Source</a></p><div class="doc"><p>Perform a fold-like computation on each value, technically a paramorphism.
225  
-</p><pre><code><a href="Control-Lens-Plated.html#v:para">para</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:paraOf">paraOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:paraOf" class="def">paraOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> [a] a b a b -&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r<a href="src/Control-Lens-Plated.html#paraOf" class="link">Source</a></p><div class="doc"><p>Perform a fold-like computation on each value, technically a paramorphism.
  186
+</p><pre><code><a href="Control-Lens-Plated.html#v:para">para</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:paraOf">paraOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre></div></div><div class="top"><p class="src"><a name="v:paraOf" class="def">paraOf</a> ::  <a href="Control-Lens-Getter.html#t:Getting">Getting</a> (Endo [a]) a b a b -&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r<a href="src/Control-Lens-Plated.html#paraOf" class="link">Source</a></p><div class="doc"><p>Perform a fold-like computation on each value, technically a paramorphism.
226 187
 </p><pre><code><a href="Control-Lens-Plated.html#v:paraOf">paraOf</a></code> :: <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code> a a -&gt; (a -&gt; [r] -&gt; r) -&gt; a -&gt; r</pre></div></div><h1 id="g:3">Compos
227 188
 </h1><div class="doc"><p>Provided for compatibility with Bj</p></div><div class="top"><p class="src"><a name="v:composOpFold" class="def">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<a href="src/Control-Lens-Plated.html#composOpFold" class="link">Source</a></p><div class="doc"><p>Fold the immediate children of a <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> container.
228  
-</p><pre><code><a href="Control-Lens-Plated.html#v:composOpFold">composOpFold</a></code> z c f = <code><a href="Control-Lens-Fold.html#v:foldrOf">foldrOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code> (c <code>.</code> f) z</pre></div></div><h1 id="g:4">Indexing into a Traversal
229  
-</h1><div class="top"><p class="src"><a name="v:element" class="def">element</a> :: <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> t =&gt; Int -&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> (t a) a<a href="src/Control-Lens-Plated.html#element" class="link">Source</a></p><div class="doc"><p>Access the <em>nth</em> element of a <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> container.
230  
-</p><p>Attempts to access beyond the range of the <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> will cause an error.
231  
-</p><pre><code><a href="Control-Lens-Plated.html#v:element">element</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:elementOf">elementOf</a></code> <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code></pre></div></div><div class="top"><p class="src"><a name="v:elementOf" class="def">elementOf</a> :: Functor f =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; Int -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f s t a a<a href="src/Control-Lens-Plated.html#elementOf" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> to 'Control.Lens.Getter.view'/'Control.Lens.Setter.set' the nth element <code><a href="Control-Lens-Plated.html#v:elementOf">elementOf</a></code> a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>, <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>.
232  
-</p><p>Attempts to access beyond the range of the <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> will cause an error.
233  
-</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>[[1],[3,4]]^.elementOf (traverse.traverse) 1
234  
-</code></strong>3
235  
-</pre></div></div><h1 id="g:5">Parts
  189
+</p><pre><code><a href="Control-Lens-Plated.html#v:composOpFold">composOpFold</a></code> z c f = <code><a href="Control-Lens-Fold.html#v:foldrOf">foldrOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code> (c <code>.</code> f) z</pre></div></div><h1 id="g:4">Parts
236 190
 </h1><div class="top"><p class="src"><a name="v:parts" class="def">parts</a> :: <a href="Control-Lens-Plated.html#t:Plated">Plated</a> a =&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> a [a]<a href="src/Control-Lens-Plated.html#parts" class="link">Source</a></p><div class="doc"><p>The original <code>uniplate</code> combinator, implemented in terms of <code><a href="Control-Lens-Plated.html#t:Plated">Plated</a></code> as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>.
237  
-</p><pre><code><a href="Control-Lens-Plated.html#v:parts">parts</a></code> &#8801; <code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre><p>The resulting lens is safer to use as it ignores 'over-application' and deals gracefully with under-application,
  191
+</p><pre><code><a href="Control-Lens-Plated.html#v:parts">parts</a></code> &#8801; <code><a href="Control-Lens-Traversal.html#v:partsOf">partsOf</a></code> <code><a href="Control-Lens-Plated.html#v:plate">plate</a></code></pre><p>The resulting lens is safer to use as it ignores 'over-application' and deals gracefully with under-application,
238 192
  but it is only a proper lens if you don't change the list <code>length</code>!
239  
-</p></div></div><div class="top"><p class="src"><a name="v:partsOf" class="def">partsOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a a) s t a a -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t [a] [a]<a href="src/Control-Lens-Plated.html#partsOf" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</a></code> turns a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> into a lens that resembles an early version of the <code>uniplate</code> (or <code>biplate</code>) type.
240  
-</p><p><em>Note:</em> You should really try to maintain the invariant of the number of children in the list.
241  
-</p><p>Any extras will be lost. If you do not supply enough, then the remainder will come from the original structure.
242  
-</p><p>So technically, this is only a lens if you do not change the number of results it returns.
243  
-</p><pre>
244  
- <code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</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> s a       -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s [a]
245  
- <code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s a      -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s [a]
246  
- <code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s a -&gt; <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s [a]
247  
-</pre></div></div><h2 id="g:6">Unsafe Operations
248  
-</h2><div class="top"><p class="src"><a name="v:unsafePartsOf" class="def">unsafePartsOf</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> a b) s t a b -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> s t [a] [b]<a href="src/Control-Lens-Plated.html#unsafePartsOf" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Plated.html#v:unsafePartsOf">unsafePartsOf</a></code> turns a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> into a <code>uniplate</code> (or <code>biplate</code>) family.
249  
-</p><p>If you do not need the types of <code>s</code> and <code>t</code> to be different, it is recommended that
250  
- you use <code><a href="Control-Lens-Plated.html#v:partsOf">partsOf</a></code>
251  
-</p><p>It is generally safer to traverse with the <code><a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a></code> rather than use this
252  
- combinator. However, it is sometimes convenient.
253  
-</p><p>This is unsafe because if you don't supply at least as many <code>b</code>'s as you were
254  
- given <code>a</code>'s, then the reconstruction of <code>t</code> <em>will</em> result in an error!
255  
-</p><pre>
256  
- <code><a href="Control-Lens-Plated.html#v:unsafePartsOf">unsafePartsOf</a></code> :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b       -&gt; <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t [a] [b]
257  
- <code><a href="Control-Lens-Plated.html#v:unsafePartsOf">unsafePartsOf</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b      -&gt; <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t [a] [b]
258  
- <code><a href="Control-Lens-Plated.html#v:unsafePartsOf">unsafePartsOf</a></code> :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> s t a b -&gt; <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t [a] [b]
259  
-</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.1</p></div></body></html>
  193
+</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.1</p></div></body></html>
2  Control-Lens-Projection.html
... ...
@@ -1,7 +1,7 @@
1 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.Projection</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Projection.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Projection.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.3: 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>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.Projection</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Simple
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Projection.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.4: 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>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Inferred</td></tr></table><p class="caption">Control.Lens.Projection</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Simple
5 5
 </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:Projection">Projection</a> s t a b = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s b, Applicative f) =&gt; k (a -&gt; f b) (s -&gt; f s)</li><li class="src short"><span class="keyword">class</span>  <a href="#t:Projective">Projective</a> k a d  <span class="keyword">where</span><ul class="subs"><li><a href="#v:projective">projective</a> ::  (d -&gt; a) -&gt; (x -&gt; y) -&gt; k x y</li></ul></li><li class="src short"><a href="#v:project">project</a> :: <a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s b =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Projection.html#t:Project">Project</a> s b) f s s a b -&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b</li><li class="src short"><a href="#v:by">by</a> ::  <a href="Control-Lens-Projection.html#t:Project">Project</a> s b (b -&gt; Identity b) (s -&gt; Identity s) -&gt; <a href="Control-Lens-Getter.html#t:Getter">Getter</a> b s</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Project">Project</a> s b x y = <a href="#v:Project">Project</a> (b -&gt; s) (x -&gt; y)</li><li class="src short"><a href="#v:projection">projection</a> ::  (b -&gt; s) -&gt; (s -&gt; Maybe a) -&gt; <a href="Control-Lens-Projection.html#t:Projection">Projection</a> s t a b</li><li class="src short"><a href="#v:stereo">stereo</a> :: <a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s a =&gt; <a href="Control-Lens-Projection.html#t:Project">Project</a> t a y z -&gt; <a href="Control-Lens-Projection.html#t:Project">Project</a> s t x y -&gt; k x z</li><li class="src short"><a href="#v:mirror">mirror</a> :: <a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s a =&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s a -&gt; <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Projection.html#t:Projection">Projection</a> s a</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleProjection">SimpleProjection</a> s a = <a href="Control-Lens-Projection.html#t:Projection">Projection</a> s s a a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Projection" class="def">Projection</a> s t a b = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s b, Applicative f) =&gt; k (a -&gt; f b) (s -&gt; f s)<a href="src/Control-Lens-Projection.html#Projection" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Projection.html#t:Projection">Projection</a></code> is a <code>Traversal</code> that can also be turned around with <code><a href="Control-Lens-Projection.html#v:by">by</a></code> to obtain a <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>
6 6
 </p></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Projective" class="def">Projective</a> k a d  <span class="keyword">where</span><a href="src/Control-Lens-Projection.html#Projective" class="link">Source</a></p><div class="doc"><p>Used to provide overloading of projections.
7 7
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:projective" class="def">projective</a> ::  (d -&gt; a) -&gt; (x -&gt; y) -&gt; k x y<a href="src/Control-Lens-Projection.html#projective" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Projective" class="caption collapser" onclick="toggleSection('i:Projective')">Instances</p><div id="section.i:Projective" class="show"><table><tr><td class="src"><a href="Control-Lens-Projection.html#t:Projective">Projective</a> (-&gt;) a d</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(~ * s s', ~ * b b') =&gt; <a href="Control-Lens-Projection.html#t:Projective">Projective</a> (<a href="Control-Lens-Projection.html#t:Project">Project</a> s b) s' b'</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:project" class="def">project</a> :: <a href="Control-Lens-Projection.html#t:Projective">Projective</a> k s b =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Projection.html#t:Project">Project</a> s b) f s s a b -&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f s s a b<a href="src/Control-Lens-Projection.html#project" class="link">Source</a></p><div class="doc"><p>Reflect a <code><a href="Control-Lens-Projection.html#t:Projection">Projection</a></code>.
2  Control-Lens-Representable.html
... ...
@@ -1,7 +1,7 @@
1 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.Representable</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 2
 window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Representable.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Representable.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.3: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>RankNTypes</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-Inferred</td></tr></table><p class="caption">Control.Lens.Representable</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Representable Functors
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Representable.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.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>RankNTypes</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-Inferred</td></tr></table><p class="caption">Control.Lens.Representable</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Representable Functors
5 5
 </a></li><li><a href="#g:2">Using Lenses as Representations
6 6
 </a></li><li><a href="#g:3">Default definitions
7 7
 </a></li><li><a href="#g:4">Wrapped Representations
2  Control-Lens-Setter.html
... ...
@@ -1,7 +1,7 @@