Skip to content
This repository
Browse code

2.6 release candidate

  • Loading branch information...
commit 74eda3bcd847e29e5ae4a1d00b3f254ee114c05b 1 parent bbb58c5
Edward Kmett authored September 03, 2012

Showing 93 changed files with 347 additions and 235 deletions. Show diff stats Hide diff stats

  1. 2  Control-Exception-Lens.html
  2. 2  Control-Lens-Action.html
  3. 2  Control-Lens-Fold.html
  4. 2  Control-Lens-Getter.html
  5. 2  Control-Lens-Indexed.html
  6. 31  Control-Lens-IndexedFold.html
  7. 2  Control-Lens-IndexedGetter.html
  8. 2  Control-Lens-IndexedLens.html
  9. 2  Control-Lens-IndexedSetter.html
  10. 3  Control-Lens-IndexedTraversal.html
  11. 8  Control-Lens-Internal.html
  12. 2  Control-Lens-Iso.html
  13. 2  Control-Lens-Isomorphic.html
  14. 8  Control-Lens-Plated.html
  15. 39  Control-Lens-Representable.html
  16. 63  Control-Lens-Setter.html
  17. 94  Control-Lens-TH.html
  18. 4  Control-Lens-Traversal.html
  19. 2  Control-Lens-Tuple.html
  20. 9  Control-Lens-Type.html
  21. 26  Control-Lens-WithIndex.html
  22. 2  Control-Lens-Zoom.html
  23. 4  Control-Lens.html
  24. 2  Control-Parallel-Strategies-Lens.html
  25. 2  Control-Seq-Lens.html
  26. 2  Data-Array-Lens.html
  27. 2  Data-Bits-Lens.html
  28. 2  Data-ByteString-Lazy-Lens.html
  29. 2  Data-ByteString-Lens.html
  30. 2  Data-ByteString-Strict-Lens.html
  31. 2  Data-Complex-Lens.html
  32. 2  Data-Data-Lens.html
  33. 2  Data-Dynamic-Lens.html
  34. 2  Data-HashSet-Lens.html
  35. 2  Data-IntMap-Lens.html
  36. 2  Data-IntSet-Lens.html
  37. 28  Data-List-Lens.html
  38. 2  Data-Map-Lens.html
  39. 2  Data-Monoid-Lens.html
  40. 2  Data-Sequence-Lens.html
  41. 2  Data-Set-Lens.html
  42. 2  Data-Text-Lazy-Lens.html
  43. 2  Data-Text-Lens.html
  44. 2  Data-Text-Strict-Lens.html
  45. 2  Data-Tree-Lens.html
  46. 2  Data-Typeable-Lens.html
  47. 2  GHC-Generics-Lens.html
  48. 5  Language-Haskell-TH-Lens.html
  49. 18  System-FilePath-Lens.html
  50. 4  doc-index-124.html
  51. 4  doc-index-126.html
  52. 4  doc-index-37.html
  53. 4  doc-index-38.html
  54. 4  doc-index-42.html
  55. 4  doc-index-43.html
  56. 4  doc-index-45.html
  57. 4  doc-index-46.html
  58. 4  doc-index-47.html
  59. 4  doc-index-60.html
  60. 4  doc-index-61.html
  61. 4  doc-index-94.html
  62. 4  doc-index-95.html
  63. 4  doc-index-A.html
  64. 4  doc-index-All.html
  65. 4  doc-index-B.html
  66. 4  doc-index-C.html
  67. 4  doc-index-D.html
  68. 4  doc-index-E.html
  69. 4  doc-index-F.html
  70. 4  doc-index-G.html
  71. 4  doc-index-H.html
  72. 4  doc-index-I.html
  73. 4  doc-index-L.html
  74. 4  doc-index-M.html
  75. 4  doc-index-N.html
  76. 4  doc-index-O.html
  77. 4  doc-index-P.html
  78. 4  doc-index-Q.html
  79. 4  doc-index-R.html
  80. 4  doc-index-S.html
  81. 4  doc-index-T.html
  82. 4  doc-index-U.html
  83. 4  doc-index-V.html
  84. 4  doc-index-W.html
  85. 4  doc-index-Z.html
  86. 4  doc-index.html
  87. 2  index-frames.html
  88. 10  index.html
  89. BIN  lens.haddock
  90. 3  mini_Control-Lens-IndexedFold.html
  91. 2  mini_Control-Lens-Internal.html
  92. 7  mini_Control-Lens-Representable.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-2.5: 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-Infered</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:traverseException">traverseException</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> b) =&gt; <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:traverseException" class="def">traverseException</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> b) =&gt; <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a b<a href="src/Control-Exception-Lens.html#traverseException" class="link">Source</a></p><div class="doc"><p>Traverse the strongly typed <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a></code> contained in <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a></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-2.6: 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-Infered</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:traverseException">traverseException</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> b) =&gt; <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:traverseException" class="def">traverseException</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> a, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a> b) =&gt; <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a b<a href="src/Control-Exception-Lens.html#traverseException" class="link">Source</a></p><div class="doc"><p>Traverse the strongly typed <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a></code> contained in <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:SomeException">SomeException</a></code> where the type of your function matches
5 5
  the desired <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a></code>.
6 6
 </p><pre>
7 7
  traverseException :: (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code> f, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a></code> a, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Exception-Base.html#t:Exception">Exception</a></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-2.5: 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-Infered</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-2.6: 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-Infered</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 a c = <span class="keyword">forall</span> f r. <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; (c -&gt; f c) -&gt; a -&gt; f a</li><li class="src short"><a href="#v:act">act</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m c) -&gt; <a href="Control-Lens-Action.html#t:Action">Action</a> m a c</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> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m c a c -&gt; a -&gt; m c</li><li class="src short"><a href="#v:liftAct">liftAct</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Monad-Trans-Class.html#t:MonadTrans">MonadTrans</a> t, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m c a c -&gt; <a href="Control-Lens-Action.html#t:Action">Action</a> (t m) a c</li><li class="src short"><a href="#v:-94--33-">(^!)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; a -&gt; <a href="Control-Lens-Action.html#t:Acting">Acting</a> m c a c -&gt; m c</li><li class="src short"><span class="keyword">type</span> <a href="#t:MonadicFold">MonadicFold</a> m a c = <span class="keyword">forall</span> f r. (<a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; (c -&gt; f c) -&gt; a -&gt; f a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Acting">Acting</a> m r a c = (c -&gt; <a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r c) -&gt; a -&gt; <a href="Control-Lens-Internal.html#t:Effect">Effect</a> m r a</li></ul></div><div id="interface"><h1 id="g:1">Composable Actions
2  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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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
2  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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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
2  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-2.5: 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-Infered</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-2.6: 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-Infered</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> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> k =&gt; ((c -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f d) -&gt; a -&gt; <a href="Control-Lens-Internal.html#t:Indexing">Indexing</a> f b) -&gt; k (c -&gt; f d) (a -&gt; f b)</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.
31  Control-Lens-IndexedFold.html
... ...
@@ -1,11 +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-2.5: 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-Infered</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-2.6: 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-Infered</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  
-</a></li><li><a href="#g:3">Building Indexed Folds
7  
-</a></li><li><a href="#g:4">Storing Indexed Folds
8  
-</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedFold">IndexedFold</a> i a c = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:ifoldMapOf">ifoldMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i m a c -&gt; (i -&gt; c -&gt; m) -&gt; a -&gt; m</li><li class="src short"><a href="#v:ifoldrOf">ifoldrOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> e) a c -&gt; (i -&gt; c -&gt; e -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldlOf">ifoldlOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> e)) a c -&gt; (i -&gt; e -&gt; c -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ianyOf">ianyOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Any">Any</a> a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:iallOf">iallOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:All">All</a> a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:itraverseOf_">itraverseOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a c -&gt; (i -&gt; c -&gt; f e) -&gt; a -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforOf_">iforOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a c -&gt; a -&gt; (i -&gt; c -&gt; f e) -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:imapMOf_">imapMOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a c -&gt; (i -&gt; c -&gt; m e) -&gt; a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforMOf_">iforMOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a c -&gt; a -&gt; (i -&gt; c -&gt; m e) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iconcatMapOf">iconcatMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [e] a c -&gt; (i -&gt; c -&gt; [e]) -&gt; a -&gt; [e]</li><li class="src short"><a href="#v:ifindOf">ifindOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:First">First</a> (i, c)) a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (i, c)</li><li class="src short"><a href="#v:ifoldrOf-39-">ifoldrOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; e))) a c -&gt; (i -&gt; c -&gt; e -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldlOf-39-">ifoldlOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; e)) a c -&gt; (i -&gt; e -&gt; c -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldrMOf">ifoldrMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; m e))) a c -&gt; (i -&gt; c -&gt; e -&gt; m e) -&gt; e -&gt; a -&gt; m e</li><li class="src short"><a href="#v:ifoldlMOf">ifoldlMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; m e)) a c -&gt; (i -&gt; e -&gt; c -&gt; m e) -&gt; e -&gt; a -&gt; m e</li><li class="src short"><a href="#v:itoListOf">itoListOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, c)] a c -&gt; a -&gt; [(i, c)]</li><li class="src short"><a href="#v:ifiltered">ifiltered</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (c -&gt; f c) (a -&gt; f a) -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:itakingWhile">itakingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:idroppingWhile">idroppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c = <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 a c</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Indexed Folds
  6
+</a></li><li><a href="#g:3">Converting to Folds
  7
+</a></li><li><a href="#g:4">Building Indexed Folds
  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 a c = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:ifoldMapOf">ifoldMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i m a c -&gt; (i -&gt; c -&gt; m) -&gt; a -&gt; m</li><li class="src short"><a href="#v:ifoldrOf">ifoldrOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> e) a c -&gt; (i -&gt; c -&gt; e -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldlOf">ifoldlOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> e)) a c -&gt; (i -&gt; e -&gt; c -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ianyOf">ianyOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Any">Any</a> a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:iallOf">iallOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:All">All</a> a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:itraverseOf_">itraverseOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a c -&gt; (i -&gt; c -&gt; f e) -&gt; a -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforOf_">iforOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Traversed">Traversed</a> f) a c -&gt; a -&gt; (i -&gt; c -&gt; f e) -&gt; f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:imapMOf_">imapMOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a c -&gt; (i -&gt; c -&gt; m e) -&gt; a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iforMOf_">iforMOf_</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="Control-Lens-Internal.html#t:Sequenced">Sequenced</a> m) a c -&gt; a -&gt; (i -&gt; c -&gt; m e) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:iconcatMapOf">iconcatMapOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [e] a c -&gt; (i -&gt; c -&gt; [e]) -&gt; a -&gt; [e]</li><li class="src short"><a href="#v:ifindOf">ifindOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:First">First</a> (i, c)) a c -&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (i, c)</li><li class="src short"><a href="#v:ifoldrOf-39-">ifoldrOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; e))) a c -&gt; (i -&gt; c -&gt; e -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldlOf-39-">ifoldlOf'</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; e)) a c -&gt; (i -&gt; e -&gt; c -&gt; e) -&gt; e -&gt; a -&gt; e</li><li class="src short"><a href="#v:ifoldrMOf">ifoldrMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; m e))) a c -&gt; (i -&gt; c -&gt; e -&gt; m e) -&gt; e -&gt; a -&gt; m e</li><li class="src short"><a href="#v:ifoldlMOf">ifoldlMOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (e -&gt; m e)) a c -&gt; (i -&gt; e -&gt; c -&gt; m e) -&gt; e -&gt; a -&gt; m e</li><li class="src short"><a href="#v:itoListOf">itoListOf</a> ::  <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i [(i, c)] a c -&gt; a -&gt; [(i, c)]</li><li class="src short"><a href="#v:withIndicesOf">withIndicesOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f a b c d -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f a b (i, c) (j, d)</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 a b c c -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f a b i j</li><li class="src short"><a href="#v:ifiltered">ifiltered</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (c -&gt; f c) (a -&gt; f a) -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:itakingWhile">itakingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><a href="#v:idroppingWhile">idroppingWhile</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c = <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 a c</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Indexed Folds
9 10
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedFold" class="def">IndexedFold</a> i a c = <span class="keyword">forall</span> k f. (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; k (c -&gt; f c) (a -&gt; f a)<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>.
10 11
 </p></div></div><h1 id="g:2">Consuming Indexed Folds
11 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 a c -&gt; (i -&gt; c -&gt; m) -&gt; a -&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><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> with access
@@ -134,10 +135,28 @@
134 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 a c            -&gt; a -&gt; [(i,c)]
135 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 a c      -&gt; a -&gt; [(i,c)]
136 137
  <code><a href="Control-Lens-IndexedFold.html#v:itoListOf">itoListOf</a></code> :: <code><a href="Control-Lens-IndexedTraversal.html#t:SimpleIndexedTraversal">SimpleIndexedTraversal</a></code> i a c -&gt; a -&gt; [(i,c)]
137  
-</pre></div></div><h1 id="g:3">Building Indexed Folds
  138
+</pre></div></div><h1 id="g:3">Converting to Folds
  139
+</h1><div class="top"><p class="src"><a name="v:withIndicesOf" class="def">withIndicesOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f a b c d -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f a b (i, c) (j, d)<a href="src/Control-Lens-IndexedFold.html#withIndicesOf" class="link">Source</a></p><div class="doc"><p>Transform an indexed fold into a fold of both the indices and the values.
  140
+</p><pre>
  141
+ <code>withIndices</code> :: <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i a c             -&gt; <code>Fold</code> a (i, c)
  142
+ <code>withIndices</code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>IndexedLens</code> i a c      -&gt; <code>Getter</code> a (i, c)
  143
+ <code>withIndices</code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>IndexedTraversal</code> i a c -&gt; <code>Fold</code> a (i, c)
  144
+</pre><p>All <code>Fold</code> operations are safe, and comply with the laws. However,
  145
+</p><p>Passing this an <code>IndexedTraversal</code> will still allow many
  146
+ <code>Traversal</code> combinators to type check on the result, but the result
  147
+ can only be legally traversed by operations that do not edit the indices.
  148
+</p><pre>
  149
+ <code>withIndices</code> :: <code>IndexedTraversal</code> i a b c d -&gt; <code>Traversal</code> a b (i, c) (j, d)
  150
+</pre><p>Change made to the indices will be discarded.
  151
+</p></div></div><div class="top"><p class="src"><a name="v:indicesOf" class="def">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 a b c c -&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> f a b i j<a href="src/Control-Lens-IndexedFold.html#indicesOf" class="link">Source</a></p><div class="doc"><p>Transform an indexed fold into a fold of the indices.
  152
+</p><pre>
  153
+ <code>indices</code> :: <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> i a c             -&gt; <code>Fold</code> a i
  154
+ <code>indices</code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>IndexedLens</code> i a c      -&gt; <code>Getter</code> a i
  155
+ <code>indices</code> :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code>IndexedTraversal</code> i a c -&gt; <code>Fold</code> a i
  156
+</pre></div></div><h1 id="g:4">Building Indexed Folds
138 157
 </h1><div class="top"><p class="src"><a name="v:ifiltered" class="def">ifiltered</a> :: (<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (c -&gt; f c) (a -&gt; f a) -&gt; k (c -&gt; f c) (a -&gt; f a)<a href="src/Control-Lens-IndexedFold.html#ifiltered" class="link">Source</a></p><div class="doc"><p>Obtain an <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> by filtering a <code><a href="Control-Lens-IndexedLens.html#t:IndexedLens">IndexedLens</a></code>, <code><a href="Control-Lens-IndexedGetter.html#t:IndexedGetter">IndexedGetter</a></code>, <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>.
139 158
 </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, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)<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.
140 159
 </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, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k) =&gt; (i -&gt; c -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-IndexedGetter.html#t:IndexedGetting">IndexedGetting</a> i (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Endo">Endo</a> (f a)) a c -&gt; k (c -&gt; f c) (a -&gt; f a)<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.
141  
-</p></div></div><h1 id="g:4">Storing Indexed Folds
  160
+</p></div></div><h1 id="g:5">Storing Indexed Folds
142 161
 </h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:ReifiedIndexedFold" class="def">ReifiedIndexedFold</a> i a c <a href="src/Control-Lens-IndexedFold.html#ReifiedIndexedFold" class="link">Source</a></p><div class="doc"><p>Useful for storage.
143 162
 </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 a c</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.10.0</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-2.5: 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-Infered</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-2.6: 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-Infered</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 a c = <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 (c -&gt; f c) (a -&gt; f a)</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedGetting">IndexedGetting</a> i m a c = <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (c -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m c) (a -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m a)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a c = <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 a c</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 a c = <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 (c -&gt; f c) (a -&gt; f a)<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 a c = <a href="Control-Lens-Indexed.html#t:Index">Index</a> i (c -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m c) (a -&gt; <a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> m a)<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>.
2  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-2.5: 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-Infered</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-2.6: 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-Infered</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
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-2.5: 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-Infered</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-2.6: 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-Infered</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 a b c d = <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 (c -&gt; f d) (a -&gt; f b)</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> a b c d -&gt; (i -&gt; c -&gt; d) -&gt; a -&gt; b</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> a b c d -&gt; (i -&gt; c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:isets">isets</a> ::  ((i -&gt; c -&gt; d) -&gt; a -&gt; b) -&gt; <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> i a b c d</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> a b c d -&gt; (i -&gt; c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:-37--64--61-">(%@=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a 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> a a c d -&gt; (i -&gt; c -&gt; d) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedIndexedSetter">ReifiedIndexedSetter</a> i a b c d = <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 a b c d</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleIndexedSetter">SimpleIndexedSetter</a> i a b = <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> i a a b b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedIndexedSetter">SimpleReifiedIndexedSetter</a> i a b = <a href="Control-Lens-IndexedSetter.html#t:ReifiedIndexedSetter">ReifiedIndexedSetter</a> i a a b b</li></ul></div><div id="interface"><h1 id="g:1">Indexed Setter
3  Control-Lens-IndexedTraversal.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.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-2.5: 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-Infered</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-2.6: 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-Infered</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
@@ -13,7 +13,6 @@
13 13
 </p></div></div><h1 id="g:2">Common Indexed Traversals
14 14
 </h1><div class="top"><p class="src"><a name="v:traverseAt" class="def">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<a href="src/Control-Lens-IndexedTraversal.html#traverseAt" class="link">Source</a></p><div class="doc"><p>Traverse the value at a given key in a map
15 15
 </p><pre><code><a href="Control-Lens-IndexedTraversal.html#v:traverseAt">traverseAt</a></code> k = <code><a href="Control-Lens-IndexedLens.html#v:at">at</a></code> k <code><a href="Control-Lens-Indexed.html#v:-60-.">&lt;.</a></code> <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code></pre></div></div><div class="top"><p class="src"><a name="v:iwhereOf" class="def">iwhereOf</a> :: (<a href="Control-Lens-Indexed.html#t:Indexed">Indexed</a> i k, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> (<a href="Control-Lens-Indexed.html#t:Index">Index</a> i) f a b c c -&gt; (i -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Type.html#t:Overloaded">Overloaded</a> k f a b c c<a href="src/Control-Lens-IndexedTraversal.html#iwhereOf" class="link">Source</a></p><div class="doc"><p>Access the element of an <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> where the index matches a predicate.
16  
-</p><p>Attempts to access beyond the range of the <code>Traversal</code> will cause an error.
17 16
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>:m + Control.Lens
18 17
 </code></strong><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>over (iwhereOf (indexed traverse) (&gt;0)) reverse $ [&quot;He&quot;,&quot;was&quot;,&quot;stressed&quot;,&quot;o_O&quot;]
19 18
 </code></strong>[&quot;He&quot;,&quot;saw&quot;,&quot;desserts&quot;,&quot;O_o&quot;]
8  Control-Lens-Internal.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.Internal</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-Internal.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Internal.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Internal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Implementation details
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Internal.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Internal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Implementation details
5 5
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>These are some of the explicit Functor instances that leak into the
6 6
  type signatures of Control.Lens. You shouldn't need to import this
7 7
  module directly, unless you are coming up with a whole new kind of
8 8
  &quot;Family&quot; and need to add instances.
9  
-</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:Context">Context</a> c d a = <a href="#v:Context">Context</a> (d -&gt; a) c</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Focusing">Focusing</a> m c a = <a href="#v:Focusing">Focusing</a> {<ul class="subs"><li><a href="#v:unfocusing">unfocusing</a> :: m (c, a)</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingWith">FocusingWith</a> w m c a = <a href="#v:FocusingWith">FocusingWith</a> {<ul class="subs"><li><a href="#v:unfocusingWith">unfocusingWith</a> :: m (c, a, w)</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingPlus">FocusingPlus</a> w k c a = <a href="#v:FocusingPlus">FocusingPlus</a> {<ul class="subs"><li><a href="#v:unfocusingPlus">unfocusingPlus</a> :: k (c, w) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingOn">FocusingOn</a> f k c a = <a href="#v:FocusingOn">FocusingOn</a> {<ul class="subs"><li><a href="#v:unfocusingOn">unfocusingOn</a> :: k (f c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingErr">FocusingErr</a> e k c a = <a href="#v:FocusingErr">FocusingErr</a> {<ul class="subs"><li><a href="#v:unfocusingErr">unfocusingErr</a> :: k (<a href="Control-Lens-Internal.html#t:Err">Err</a> e c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Err">Err</a> e a = <a href="#v:Err">Err</a> {<ul class="subs"><li><a href="#v:getErr">getErr</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> e a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingMay">FocusingMay</a> k c a = <a href="#v:FocusingMay">FocusingMay</a> {<ul class="subs"><li><a href="#v:unfocusingMay">unfocusingMay</a> :: k (<a href="Control-Lens-Internal.html#t:May">May</a> c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:May">May</a> a = <a href="#v:May">May</a> {<ul class="subs"><li><a href="#v:getMay">getMay</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Traversed">Traversed</a> f = <a href="#v:Traversed">Traversed</a> {<ul class="subs"><li><a href="#v:getTraversed">getTraversed</a> :: f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Sequenced">Sequenced</a> m = <a href="#v:Sequenced">Sequenced</a> {<ul class="subs"><li><a href="#v:getSequenced">getSequenced</a> :: m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Indexing">Indexing</a> f a = <a href="#v:Indexing">Indexing</a> {<ul class="subs"><li><a href="#v:runIndexing">runIndexing</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Control-Lens-Internal.html#t:IndexingResult">IndexingResult</a> f a</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:IndexingResult">IndexingResult</a> f a = <a href="#v:IndexingResult">IndexingResult</a> (f a) !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Min">Min</a> a<ul class="subs"><li>= <a href="#v:NoMin">NoMin</a>  </li><li>| <a href="#v:Min">Min</a> a  </li></ul></li><li class="src short"><a href="#v:getMin">getMin</a> ::  <a href="Control-Lens-Internal.html#t:Min">Min</a> a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Max">Max</a> a<ul class="subs"><li>= <a href="#v:NoMax">NoMax</a>  </li><li>| <a href="#v:Max">Max</a> a  </li></ul></li><li class="src short"><a href="#v:getMax">getMax</a> ::  <a href="Control-Lens-Internal.html#t:Max">Max</a> a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ElementOf">ElementOf</a> f a = <a href="#v:ElementOf">ElementOf</a> {<ul class="subs"><li><a href="#v:getElementOf">getElementOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Control-Lens-Internal.html#t:ElementOfResult">ElementOfResult</a> f a</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ElementOfResult">ElementOfResult</a> f a<ul class="subs"><li>= <a href="#v:Searching">Searching</a> !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> a  </li><li>| <a href="#v:Found">Found</a> !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> (f a)  </li><li>| <a href="#v:NotFound">NotFound</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Bazaar">Bazaar</a> c d a = <a href="#v:Bazaar">Bazaar</a> {<ul class="subs"><li><a href="#v:_runBazaar">_runBazaar</a> :: <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (c -&gt; f d) -&gt; f a</li></ul>}</li><li class="src short"><a href="#v:bazaar">bazaar</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (c -&gt; f d) -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d b -&gt; f b</li><li class="src short"><a href="#v:duplicateBazaar">duplicateBazaar</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c e a -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> d e a)</li><li class="src short"><a href="#v:sell">sell</a> ::  c -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d d</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Effect">Effect</a> m r a = <a href="#v:Effect">Effect</a> {<ul class="subs"><li><a href="#v:getEffect">getEffect</a> :: m r</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:EffectRWS">EffectRWS</a> w s m c a = <a href="#v:EffectRWS">EffectRWS</a> {<ul class="subs"><li><a href="#v:getEffectRWS">getEffectRWS</a> :: s -&gt; m (c, s, w)</li></ul>}</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Gettable">Gettable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:coerce">coerce</a> ::  f a -&gt; f b</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Accessor">Accessor</a> r a = <a href="#v:Accessor">Accessor</a> {<ul class="subs"><li><a href="#v:runAccessor">runAccessor</a> :: r</li></ul>}</li><li class="src short"><span class="keyword">class</span> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; <a href="#t:Effective">Effective</a> m r f | f -&gt; m r <span class="keyword">where</span><ul class="subs"><li><a href="#v:effective">effective</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (m r) (f a)</li></ul></li><li class="src short"><a href="#v:ineffective">ineffective</a> :: <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (f a) (m r)</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a href="#t:Settable">Settable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:untainted">untainted</a> ::  f a -&gt; a</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Mutator">Mutator</a> a = <a href="#v:Mutator">Mutator</a> {<ul class="subs"><li><a href="#v:runMutator">runMutator</a> :: a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Implementation details
  9
+</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:Context">Context</a> c d a = <a href="#v:Context">Context</a> (d -&gt; a) c</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Focusing">Focusing</a> m c a = <a href="#v:Focusing">Focusing</a> {<ul class="subs"><li><a href="#v:unfocusing">unfocusing</a> :: m (c, a)</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingWith">FocusingWith</a> w m c a = <a href="#v:FocusingWith">FocusingWith</a> {<ul class="subs"><li><a href="#v:unfocusingWith">unfocusingWith</a> :: m (c, a, w)</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingPlus">FocusingPlus</a> w k c a = <a href="#v:FocusingPlus">FocusingPlus</a> {<ul class="subs"><li><a href="#v:unfocusingPlus">unfocusingPlus</a> :: k (c, w) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingOn">FocusingOn</a> f k c a = <a href="#v:FocusingOn">FocusingOn</a> {<ul class="subs"><li><a href="#v:unfocusingOn">unfocusingOn</a> :: k (f c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingErr">FocusingErr</a> e k c a = <a href="#v:FocusingErr">FocusingErr</a> {<ul class="subs"><li><a href="#v:unfocusingErr">unfocusingErr</a> :: k (<a href="Control-Lens-Internal.html#t:Err">Err</a> e c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Err">Err</a> e a = <a href="#v:Err">Err</a> {<ul class="subs"><li><a href="#v:getErr">getErr</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> e a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:FocusingMay">FocusingMay</a> k c a = <a href="#v:FocusingMay">FocusingMay</a> {<ul class="subs"><li><a href="#v:unfocusingMay">unfocusingMay</a> :: k (<a href="Control-Lens-Internal.html#t:May">May</a> c) a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:May">May</a> a = <a href="#v:May">May</a> {<ul class="subs"><li><a href="#v:getMay">getMay</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Traversed">Traversed</a> f = <a href="#v:Traversed">Traversed</a> {<ul class="subs"><li><a href="#v:getTraversed">getTraversed</a> :: f <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Sequenced">Sequenced</a> m = <a href="#v:Sequenced">Sequenced</a> {<ul class="subs"><li><a href="#v:getSequenced">getSequenced</a> :: m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Indexing">Indexing</a> f a = <a href="#v:Indexing">Indexing</a> {<ul class="subs"><li><a href="#v:runIndexing">runIndexing</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Control-Lens-Internal.html#t:IndexingResult">IndexingResult</a> f a</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:IndexingResult">IndexingResult</a> f a = <a href="#v:IndexingResult">IndexingResult</a> (f a) !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Min">Min</a> a<ul class="subs"><li>= <a href="#v:NoMin">NoMin</a>  </li><li>| <a href="#v:Min">Min</a> a  </li></ul></li><li class="src short"><a href="#v:getMin">getMin</a> ::  <a href="Control-Lens-Internal.html#t:Min">Min</a> a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Max">Max</a> a<ul class="subs"><li>= <a href="#v:NoMax">NoMax</a>  </li><li>| <a href="#v:Max">Max</a> a  </li></ul></li><li class="src short"><a href="#v:getMax">getMax</a> ::  <a href="Control-Lens-Internal.html#t:Max">Max</a> a -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ElementOf">ElementOf</a> f a = <a href="#v:ElementOf">ElementOf</a> {<ul class="subs"><li><a href="#v:getElementOf">getElementOf</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Control-Lens-Internal.html#t:ElementOfResult">ElementOfResult</a> f a</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:ElementOfResult">ElementOfResult</a> f a<ul class="subs"><li>= <a href="#v:Searching">Searching</a> !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> a  </li><li>| <a href="#v:Found">Found</a> !<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> (f a)  </li><li>| <a href="#v:NotFound">NotFound</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Bazaar">Bazaar</a> c d a = <a href="#v:Bazaar">Bazaar</a> {<ul class="subs"><li><a href="#v:_runBazaar">_runBazaar</a> :: <span class="keyword">forall</span> f. <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (c -&gt; f d) -&gt; f a</li></ul>}</li><li class="src short"><a href="#v:bazaar">bazaar</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (c -&gt; f d) -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d b -&gt; f b</li><li class="src short"><a href="#v:duplicateBazaar">duplicateBazaar</a> ::  <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c e a -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d (<a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> d e a)</li><li class="src short"><a href="#v:sell">sell</a> ::  c -&gt; <a href="Control-Lens-Internal.html#t:Bazaar">Bazaar</a> c d d</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Effect">Effect</a> m r a = <a href="#v:Effect">Effect</a> {<ul class="subs"><li><a href="#v:getEffect">getEffect</a> :: m r</li></ul>}</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:EffectRWS">EffectRWS</a> w s m c a = <a href="#v:EffectRWS">EffectRWS</a> {<ul class="subs"><li><a href="#v:getEffectRWS">getEffectRWS</a> :: s -&gt; m (c, s, w)</li></ul>}</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Gettable">Gettable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:coerce">coerce</a> ::  f a -&gt; f b</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Accessor">Accessor</a> r a = <a href="#v:Accessor">Accessor</a> {<ul class="subs"><li><a href="#v:runAccessor">runAccessor</a> :: r</li></ul>}</li><li class="src short"><span class="keyword">class</span> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; <a href="#t:Effective">Effective</a> m r f | f -&gt; m r <span class="keyword">where</span><ul class="subs"><li><a href="#v:effective">effective</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (m r) (f a)</li></ul></li><li class="src short"><a href="#v:ineffective">ineffective</a> :: <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (f a) (m r)</li><li class="src short"><a href="#v:noEffect">noEffect</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; f a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Folding">Folding</a> f a = <a href="#v:Folding">Folding</a> {<ul class="subs"><li><a href="#v:getFolding">getFolding</a> :: f a</li></ul>}</li><li class="src short"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a href="#t:Settable">Settable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:untainted">untainted</a> ::  f a -&gt; a</li></ul></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Mutator">Mutator</a> a = <a href="#v:Mutator">Mutator</a> {<ul class="subs"><li><a href="#v:runMutator">runMutator</a> :: a</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">Implementation details
10 10
 </h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Context" class="def">Context</a> c d a <a href="src/Control-Lens-Internal.html#Context" class="link">Source</a></p><div class="doc"><p>The indexed store can be used to characterize a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>
11 11
  and is used by <code><a href="Control-Lens-Type.html#v:clone">clone</a></code>
12 12
 </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Context" class="def">Context</a> (d -&gt; a) c</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Context" class="caption collapser" onclick="toggleSection('i:Context')">Instances</p><div id="section.i:Context" class="show"><table><tr><td class="src">~ * c d =&gt; ComonadStore c (<a href="Control-Lens-Internal.html#t:Context">Context</a> c d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Internal.html#t:Context">Context</a> c d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * c d =&gt; Comonad (<a href="Control-Lens-Internal.html#t:Context">Context</a> c d)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Focusing" class="def">Focusing</a> m c a <a href="src/Control-Lens-Internal.html#Focusing" class="link">Source</a></p><div class="doc"><p>Used by <code><a href="Control-Lens-Type.html#t:Zoom">Zoom</a></code> to <code><a href="Control-Lens-Type.html#v:zoom">zoom</a></code> into <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State.html#t:StateT">StateT</a></code>
@@ -52,7 +52,9 @@
52 52
 </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Accessor" class="def">Accessor</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:runAccessor" class="def">runAccessor</a> :: r</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Accessor" class="caption collapser" onclick="toggleSection('i:Accessor')">Instances</p><div id="section.i:Accessor" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal.html#t:Effective">Effective</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a> r (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> r =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> (<a href="Control-Lens-Internal.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-Internal.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 class="top"><p class="src"><span class="keyword">class</span> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; <a name="t:Effective" class="def">Effective</a> m r f | f -&gt; m r <span class="keyword">where</span><a href="src/Control-Lens-Internal.html#Effective" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-Internal.html#t:Effective">Effective</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> ignores its argument and is isomorphic to a monad wrapped around a value.
53 53
 </p><p>That said, the monad is possibly rather unrelated to any <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code> structure.
54 54
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:effective" class="def">effective</a> :: <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (m r) (f a)<a href="src/Control-Lens-Internal.html#effective" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Effective" class="caption collapser" onclick="toggleSection('i:Effective')">Instances</p><div id="section.i:Effective" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal.html#t:Effective">Effective</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a> r (<a href="Control-Lens-Internal.html#t:Accessor">Accessor</a> r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r (<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-Internal.html#t:Effective">Effective</a> m r f =&gt; <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Dual">Dual</a> r) (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ineffective" class="def">ineffective</a> :: <a href="Control-Lens-Internal.html#t:Effective">Effective</a> m r f =&gt; <a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k =&gt; k (f a) (m r)<a href="src/Control-Lens-Internal.html#ineffective" class="link">Source</a></p><div class="doc"><p>A convenient antonym that is used internally.
55  
-</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a name="t:Settable" class="def">Settable</a> f  <span class="keyword">where</span><a href="src/Control-Lens-Internal.html#Settable" class="link">Source</a></p><div class="doc"><p>Anything <code><a href="Control-Lens-Internal.html#t:Settable">Settable</a></code> must be isomorphic to the <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>.
  55
+</p></div></div><div class="top"><p class="src"><a name="v:noEffect" class="def">noEffect</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f) =&gt; f a<a href="src/Control-Lens-Internal.html#noEffect" class="link">Source</a></p><div class="doc"><p>The <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#v:mempty">mempty</a></code> equivalent for a <code><a href="Control-Lens-Internal.html#t:Gettable">Gettable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>.
  56
+</p></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Folding" class="def">Folding</a> f a <a href="src/Control-Lens-Internal.html#Folding" class="link">Source</a></p><div class="doc"><p>A <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code> for a <code><a href="Control-Lens-Internal.html#t:Gettable">Gettable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code>.
  57
+</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Folding" class="def">Folding</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:getFolding" class="def">getFolding</a> :: f a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Folding" class="caption collapser" onclick="toggleSection('i:Folding')">Instances</p><div id="section.i:Folding" class="show"><table><tr><td class="src">(<a href="Control-Lens-Internal.html#t:Gettable">Gettable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Control-Lens-Internal.html#t:Folding">Folding</a> f a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a name="t:Settable" class="def">Settable</a> f  <span class="keyword">where</span><a href="src/Control-Lens-Internal.html#Settable" class="link">Source</a></p><div class="doc"><p>Anything <code><a href="Control-Lens-Internal.html#t:Settable">Settable</a></code> must be isomorphic to the <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>.
56 58
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:untainted" class="def">untainted</a> ::  f a -&gt; a<a href="src/Control-Lens-Internal.html#untainted" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Settable" class="caption collapser" onclick="toggleSection('i:Settable')">Instances</p><div id="section.i:Settable" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal.html#t:Settable">Settable</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc"><p>so you can pass our a <code>Setter</code> into combinators from other lens libraries
57 59
 </p></td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:Settable">Settable</a> <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; <a href="Control-Lens-Internal.html#t:Settable">Settable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc"><p><code><a href="Control-Lens-Fold.html#v:backwards">backwards</a></code>
58 60
 </p></td></tr><tr><td class="src">(<a href="Control-Lens-Internal.html#t:Settable">Settable</a> f, <a href="Control-Lens-Internal.html#t:Settable">Settable</a> g) =&gt; <a href="Control-Lens-Internal.html#t:Settable">Settable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Mutator" class="def">Mutator</a> a <a href="src/Control-Lens-Internal.html#Mutator" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Internal.html#t:Mutator">Mutator</a></code> is just a renamed <code><a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></code> functor to give better error
2  Control-Lens-Iso.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.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Iso</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Iso</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Isomorphism Lenses
5 5
 </a></li><li><a href="#g:2">Primitive isomorphisms
6 6
 </a><ul><li><a href="#g:3">Common Isomorphisms
7 7
 </a></li></ul></li><li><a href="#g:4">Storing Isomorphisms
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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a> 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> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a> 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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a> 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> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a> 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><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Category.html#t:Category">Category</a></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
8  Control-Lens-Plated.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.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.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 7
 </a></li><li><a href="#g:4">Parts
@@ -241,9 +241,9 @@
241 241
 </p><pre><code><a href="Control-Lens-Plated.html#v:parts">parts</a></code> = <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,
242 242
  but it is only a proper lens if you don't change the list <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:length">length</a></code>!
243 243
 </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> c c) a b c c -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b [c] [c]<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.
244  
-</p><p><em>Note:</em> You should really, maintain the invariant of the number of children in the list.
245  
-</p><p>Any extras will be lost.
246  
-</p><p>If you do not supply enough, then the remainder will come from the original structure.
  244
+</p><p><em>Note:</em> You should really try to maintain the invariant of the number of children in the list.
  245
+</p><p>Any extras will be lost. If you do not supply enough, then the remainder will come from the original structure.
  246
+</p><p>So technically, this is only a lens if you do not change the number of results it returns.
247 247
 </p><pre>
248 248
  <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> a b       -&gt; 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 [b]
249 249
  <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> a b      -&gt; 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 [b]
39  Control-Lens-Representable.html
... ...
@@ -1,11 +1,14 @@
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-2.5: 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-Infered</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-2.6: 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-Infered</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
8  
-</a></li><li><a href="#g:5">Traversal with representation
  8
+</a></li><li><a href="#g:5">Setting with Representation
  9
+</a></li><li><a href="#g:6">Folding with Representation
  10
+</a></li><li><a href="#g:7">Traversing with Representation
  11
+</a></li><li><a href="#g:8">Representable Setters, Folds and Traversals
9 12
 </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Corepresentable endofunctors represented by their polymorphic lenses
10 13
 </p><p>The polymorphic lenses of the form <code>(forall x. <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> (f x) x)</code> each
11 14
  represent a distinct path into a functor <code>f</code>. If the functor is entirely
@@ -30,7 +33,7 @@
30 33
 </pre><pre>
31 34
  instance <code><a href="Data-Distributive.html#t:Distributive">Distributive</a></code> Pair where
32 35
    <code><a href="Data-Distributive.html#v:distribute">distribute</a></code> = <code><a href="Control-Lens-Representable.html#v:distributeRep">distributeRep</a></code>
33  
-</pre></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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Representable">Representable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:rep">rep</a> ::  (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a) -&gt; f a</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Rep">Rep</a> f = <span class="keyword">forall</span> a.  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> (f a) a</li><li class="src short"><a href="#v:fmapRep">fmapRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:pureRep">pureRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; a -&gt; f a</li><li class="src short"><a href="#v:apRep">apRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:bindRep">bindRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f a -&gt; (a -&gt; f b) -&gt; f b</li><li class="src short"><a href="#v:distributeRep">distributeRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> w) =&gt; w (f a) -&gt; f (w a)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Path">Path</a> f = <a href="#v:Path">Path</a> {<ul class="subs"><li><a href="#v:walk">walk</a> :: <a href="Control-Lens-Representable.html#t:Rep">Rep</a> f</li></ul>}</li><li class="src short"><a href="#v:paths">paths</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f (<a href="Control-Lens-Representable.html#t:Path">Path</a> f)</li><li class="src short"><a href="#v:tabulated">tabulated</a> :: (<a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k, <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f) =&gt; k (<a href="Control-Lens-Representable.html#t:Path">Path</a> f -&gt; a) (f a)</li><li class="src short"><a href="#v:mapWithRep">mapWithRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:foldMapWithRep">foldMapWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m) -&gt; f a -&gt; m</li><li class="src short"><a href="#v:foldrWithRep">foldrWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li class="src short"><a href="#v:traverseWithRep">traverseWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g (f b)</li><li class="src short"><a href="#v:traverseWithRep_">traverseWithRep_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:forWithRep">forWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; g (f b)</li><li class="src short"><a href="#v:mapMWithRep">mapMWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m (f b)</li><li class="src short"><a href="#v:mapMWithRep_">mapMWithRep_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:forMWithRep">forMWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; m (f b)</li></ul></div><div id="interface"><h1 id="g:1">Representable Functors
  36
+</pre></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="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Representable">Representable</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:rep">rep</a> ::  (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a) -&gt; f a</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Rep">Rep</a> f = <span class="keyword">forall</span> a.  <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> (f a) a</li><li class="src short"><a href="#v:fmapRep">fmapRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:pureRep">pureRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; a -&gt; f a</li><li class="src short"><a href="#v:apRep">apRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:bindRep">bindRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f a -&gt; (a -&gt; f b) -&gt; f b</li><li class="src short"><a href="#v:distributeRep">distributeRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> w) =&gt; w (f a) -&gt; f (w a)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Path">Path</a> f = <a href="#v:Path">Path</a> {<ul class="subs"><li><a href="#v:walk">walk</a> :: <a href="Control-Lens-Representable.html#t:Rep">Rep</a> f</li></ul>}</li><li class="src short"><a href="#v:paths">paths</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f (<a href="Control-Lens-Representable.html#t:Path">Path</a> f)</li><li class="src short"><a href="#v:tabulated">tabulated</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Path">Path</a> f -&gt; a) -&gt; f a</li><li class="src short"><a href="#v:rmap">rmap</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:rfoldMap">rfoldMap</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m) -&gt; f a -&gt; m</li><li class="src short"><a href="#v:rfoldr">rfoldr</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b</li><li class="src short"><a href="#v:rtraverse">rtraverse</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g (f b)</li><li class="src short"><a href="#v:rtraverse_">rtraverse_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:rfor">rfor</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; g (f b)</li><li class="src short"><a href="#v:rmapM">rmapM</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m (f b)</li><li class="src short"><a href="#v:rmapM_">rmapM_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:rforM">rforM</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; m (f b)</li><li class="src short"><a href="#v:rmapped">rmapped</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) (f b) a b</li><li class="src short"><a href="#v:rfolded">rfolded</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; <a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) a</li><li class="src short"><a href="#v:rtraversed">rtraversed</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f) =&gt; <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) (f b) a b</li></ul></div><div id="interface"><h1 id="g:1">Representable Functors
34 37
 </h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a name="t:Representable" class="def">Representable</a> f  <span class="keyword">where</span><a href="src/Control-Lens-Representable.html#Representable" class="link">Source</a></p><div class="doc"><p>Representable Functors.
35 38
 </p><p>A <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> <code>f</code> is <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> if it is isomorphic to <code>(x -&gt; a)</code>
36 39
  for some x. Nearly all such functors can be represented by choosing <code>x</code> to be
@@ -86,27 +89,33 @@
86 89
 </pre></div></div><h1 id="g:4">Wrapped Representations
87 90
 </h1><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Path" class="def">Path</a> f <a href="src/Control-Lens-Representable.html#Path" class="link">Source</a></p><div class="doc"><p>Sometimes you need to store a path lens into a container, but at least
88 91
  at this time, <code>ImpredicativePolymorphism</code> in GHC is somewhat lacking.
89  
-</p><p>This type provides a way to, say, store a <code>[]</code> of polymorphic lenses.
  92
+</p><p>This type provides a way to, say, store a <code>[]</code> of paths.
90 93
 </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Path" class="def">Path</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:walk" class="def">walk</a> :: <a href="Control-Lens-Representable.html#t:Rep">Rep</a> f</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:paths" class="def">paths</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; f (<a href="Control-Lens-Representable.html#t:Path">Path</a> f)<a href="src/Control-Lens-Representable.html#paths" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> has a fixed shape. This fills each position
91 94
  in it with a <code><a href="Control-Lens-Representable.html#t:Path">Path</a></code>
92  
-</p></div></div><div class="top"><p class="src"><a name="v:tabulated" class="def">tabulated</a> :: (<a href="Control-Lens-Isomorphic.html#t:Isomorphic">Isomorphic</a> k, <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f) =&gt; k (<a href="Control-Lens-Representable.html#t:Path">Path</a> f -&gt; a) (f a)<a href="src/Control-Lens-Representable.html#tabulated" class="link">Source</a></p><div class="doc"><p>A version of <code><a href="Control-Lens-Representable.html#v:rep">rep</a></code> that is an isomorphism. Predicativity requires that
  95
+</p></div></div><div class="top"><p class="src"><a name="v:tabulated" class="def">tabulated</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Path">Path</a> f -&gt; a) -&gt; f a<a href="src/Control-Lens-Representable.html#tabulated" class="link">Source</a></p><div class="doc"><p>A version of <code><a href="Control-Lens-Representable.html#v:rep">rep</a></code> that is an isomorphism. Predicativity requires that
93 96
  we wrap the <code><a href="Control-Lens-Representable.html#t:Rep">Rep</a></code> as a <code>Key</code>, however.
94  
-</p></div></div><h1 id="g:5">Traversal with representation
95  
-</h1><div class="top"><p class="src"><a name="v:mapWithRep" class="def">mapWithRep</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b) -&gt; f a -&gt; f b<a href="src/Control-Lens-Representable.html#mapWithRep" class="link">Source</a></p><div class="doc"><p>Map over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> for the
  97
+</p></div></div><h1 id="g:5">Setting with Representation
  98
+</h1><div class="top"><p class="src"><a name="v:rmap" class="def">rmap</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b) -&gt; f a -&gt; f b<a href="src/Control-Lens-Representable.html#rmap" class="link">Source</a></p><div class="doc"><p>Map over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> for the
96 99
  current position
97  
-</p><pre><code><a href="Control-Lens-Representable.html#v:mapWithRep">mapWithRep</a></code> f m = <code><a href="Control-Lens-Representable.html#v:rep">rep</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:-36-">$</a></code> i -&gt; f i (m <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> i)</pre></div></div><div class="top"><p class="src"><a name="v:foldMapWithRep" class="def">foldMapWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m) -&gt; f a -&gt; m<a href="src/Control-Lens-Representable.html#foldMapWithRep" class="link">Source</a></p><div class="doc"><p>Fold over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  100
+</p><pre><code><a href="Control-Lens-Representable.html#v:rmap">rmap</a></code> f m = <code><a href="Control-Lens-Representable.html#v:rep">rep</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:-36-">$</a></code> i -&gt; f i (m <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> i)</pre></div></div><h1 id="g:6">Folding with Representation
  101
+</h1><div class="top"><p class="src"><a name="v:rfoldMap" class="def">rfoldMap</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m) -&gt; f a -&gt; m<a href="src/Control-Lens-Representable.html#rfoldMap" class="link">Source</a></p><div class="doc"><p>Fold over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
98 102
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, yielding a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Monoid.html#t:Monoid">Monoid</a></code>
99  
-</p></div></div><div class="top"><p class="src"><a name="v:foldrWithRep" class="def">foldrWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b<a href="src/Control-Lens-Representable.html#foldrWithRep" class="link">Source</a></p><div class="doc"><p>Fold over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  103
+</p></div></div><div class="top"><p class="src"><a name="v:rfoldr" class="def">rfoldr</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; f a -&gt; b<a href="src/Control-Lens-Representable.html#rfoldr" class="link">Source</a></p><div class="doc"><p>Fold over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
100 104
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>.
101  
-</p></div></div><div class="top"><p class="src"><a name="v:traverseWithRep" class="def">traverseWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g (f b)<a href="src/Control-Lens-Representable.html#traverseWithRep" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
102  
-</p></div></div><div class="top"><p class="src"><a name="v:traverseWithRep_" class="def">traverseWithRep_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Representable.html#traverseWithRep_" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  105
+</p></div></div><h1 id="g:7">Traversing with Representation
  106
+</h1><div class="top"><p class="src"><a name="v:rtraverse" class="def">rtraverse</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g (f b)<a href="src/Control-Lens-Representable.html#rtraverse" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  107
+</p></div></div><div class="top"><p class="src"><a name="v:rtraverse_" class="def">rtraverse_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; f a -&gt; g <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Representable.html#rtraverse_" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
103 108
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, discarding the result
104  
-</p></div></div><div class="top"><p class="src"><a name="v:forWithRep" class="def">forWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; g (f b)<a href="src/Control-Lens-Representable.html#forWithRep" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  109
+</p></div></div><div class="top"><p class="src"><a name="v:rfor" class="def">rfor</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> g) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; g b) -&gt; g (f b)<a href="src/Control-Lens-Representable.html#rfor" class="link">Source</a></p><div class="doc"><p>Traverse a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
105 110
  and a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> (and the arguments flipped)
106  
-</p></div></div><div class="top"><p class="src"><a name="v:mapMWithRep" class="def">mapMWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m (f b)<a href="src/Control-Lens-Representable.html#mapMWithRep" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  111
+</p></div></div><div class="top"><p class="src"><a name="v:rmapM" class="def">rmapM</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m (f b)<a href="src/Control-Lens-Representable.html#rmapM" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
107 112
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>
108  
-</p></div></div><div class="top"><p class="src"><a name="v:mapMWithRep_" class="def">mapMWithRep_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Representable.html#mapMWithRep_" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  113
+</p></div></div><div class="top"><p class="src"><a name="v:rmapM_" class="def">rmapM_</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; f a -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Representable.html#rmapM_" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
109 114
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, discarding the result
110  
-</p></div></div><div class="top"><p class="src"><a name="v:forMWithRep" class="def">forMWithRep</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; m (f b)<a href="src/Control-Lens-Representable.html#forMWithRep" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
  115
+</p></div></div><div class="top"><p class="src"><a name="v:rforM" class="def">rforM</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; f a -&gt; (<a href="Control-Lens-Representable.html#t:Rep">Rep</a> f -&gt; a -&gt; m b) -&gt; m (f b)<a href="src/Control-Lens-Representable.html#rforM" class="link">Source</a></p><div class="doc"><p><code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:mapM">mapM</a></code> over a <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> functor with access to the current path
111 116
  as a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> (with the arguments flipped)
  117
+</p></div></div><h1 id="g:8">Representable Setters, Folds and Traversals
  118
+</h1><div class="top"><p class="src"><a name="v:rmapped" class="def">rmapped</a> :: <a href="Control-Lens-Representable.html#t:Representable">Representable</a> f =&gt; <a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) (f b) a b<a href="src/Control-Lens-Representable.html#rmapped" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-IndexedSetter.html#t:IndexedSetter">IndexedSetter</a></code> that walks an <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> using a <code><a href="Control-Lens-Representable.html#t:Path">Path</a></code> for an index.
  119
+</p></div></div><div class="top"><p class="src"><a name="v:rfolded" class="def">rfolded</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a> f) =&gt; <a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) a<a href="src/Control-Lens-Representable.html#rfolded" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-IndexedFold.html#t:IndexedFold">IndexedFold</a></code> that walks an <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Foldable.html#t:Foldable">Foldable</a></code> <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> using a <code><a href="Control-Lens-Representable.html#t:Path">Path</a></code> for an index.
  120
+</p></div></div><div class="top"><p class="src"><a name="v:rtraversed" class="def">rtraversed</a> :: (<a href="Control-Lens-Representable.html#t:Representable">Representable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f) =&gt; <a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a> (<a href="Control-Lens-Representable.html#t:Path">Path</a> f) (f a) (f b) a b<a href="src/Control-Lens-Representable.html#rtraversed" class="link">Source</a></p><div class="doc"><p>An <code><a href="Control-Lens-IndexedTraversal.html#t:IndexedTraversal">IndexedTraversal</a></code> for a <code><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a></code> <code><a href="Control-Lens-Representable.html#t:Representable">Representable</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>.
112 121
 </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
63  Control-Lens-Setter.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.Setter</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-Setter.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Setter.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Setter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Setters
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Setter.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Setter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Setters
5 5
 </a></li><li><a href="#g:2">Building Setters
6 6
 </a></li><li><a href="#g:3">Common Setters
7 7
 </a></li><li><a href="#g:4">Functional Combinators
@@ -16,7 +16,7 @@
16 16
 </p><pre>type <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b c d = (c -&gt; <code>Identity</code> d) -&gt; a -&gt; <code>Identity</code> b</pre><p>Every <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> is a valid <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>, since <code>Identity</code> is <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code>.
17 17
 </p><p>Everything you can do with a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code>, you can do with a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>. There
18 18
  are combinators that generalize <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#v:fmap">fmap</a></code> and (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Functor.html#v:-60--36-">&lt;$</a></code>).
19  
-</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:Setter">Setter</a> a b c d = <span class="keyword">forall</span> f. <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; (c -&gt; f d) -&gt; a -&gt; f b</li><li class="src short"><a href="#v:sets">sets</a> ::  ((c -&gt; d) -&gt; a -&gt; b) -&gt; <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a b c d</li><li class="src short"><a href="#v:mapped">mapped</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f a) (f b) a b</li><li class="src short"><a href="#v:over">over</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:mapOf">mapOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:set">set</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; b</li><li class="src short"><a href="#v:.-126-">(.~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; b</li><li class="src short"><a href="#v:-37--126-">(%~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:-43--126-">(+~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-45--126-">(-~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-42--126-">(*~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-47--47--126-">(//~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-94--126-">(^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; e -&gt; a -&gt; b</li><li class="src short"><a href="#v:-94--94--126-">(^^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> c, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; e -&gt; a -&gt; b</li><li class="src short"><a href="#v:-42--42--126-">(**~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-124--124--126-">(||~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; a -&gt; b</li><li class="src short"><a href="#v:-38--38--126-">(&amp;&amp;~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; a -&gt; b</li><li class="src short"><a href="#v:-60-.-126-">(&lt;.~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; (d, b)</li><li class="src short"><a href="#v:.-61-">(.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-37--61-">(%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; (c -&gt; d) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-43--61-">(+=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-45--61-">(-=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-42--61-">(*=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-47--47--61-">(//=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-94--61-">(^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> c) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; c -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-94--94--61-">(^^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> c) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; c -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-42--42--61-">(**=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-124--124--61-">(||=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-38--38--61-">(&amp;&amp;=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-60-.-61-">(&lt;.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m d</li><li class="src short"><a href="#v:-60--126-">(&lt;~)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; m d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedSetter">ReifiedSetter</a> a b c d = <a href="#v:ReifySetter">ReifySetter</a> {<ul class="subs"><li><a href="#v:reflectSetter">reflectSetter</a> :: <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a b c d</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setting">Setting</a> a b c d = (c -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> d) -&gt; a -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleSetting">SimpleSetting</a> a b = <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a b b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleSetter">SimpleSetter</a> a b = <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a a b b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedSetter">SimpleReifiedSetter</a> a b = <a href="Control-Lens-Setter.html#t:ReifiedSetter">ReifiedSetter</a> a a b b</li></ul></div><div id="interface"><h1 id="g:1">Setters
  19
+</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:Setter">Setter</a> a b c d = <span class="keyword">forall</span> f. <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; (c -&gt; f d) -&gt; a -&gt; f b</li><li class="src short"><a href="#v:sets">sets</a> ::  ((c -&gt; d) -&gt; a -&gt; b) -&gt; <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a b c d</li><li class="src short"><a href="#v:mapped">mapped</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f a) (f b) a b</li><li class="src short"><a href="#v:over">over</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:mapOf">mapOf</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:set">set</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; b</li><li class="src short"><a href="#v:.-126-">(.~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; b</li><li class="src short"><a href="#v:-37--126-">(%~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; (c -&gt; d) -&gt; a -&gt; b</li><li class="src short"><a href="#v:-43--126-">(+~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-45--126-">(-~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-42--126-">(*~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-47--47--126-">(//~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-94--126-">(^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; e -&gt; a -&gt; b</li><li class="src short"><a href="#v:-94--94--126-">(^^~)</a> :: (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> c, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> e) =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; e -&gt; a -&gt; b</li><li class="src short"><a href="#v:-42--42--126-">(**~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> c =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c c -&gt; c -&gt; a -&gt; b</li><li class="src short"><a href="#v:-124--124--126-">(||~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; a -&gt; b</li><li class="src short"><a href="#v:-38--38--126-">(&amp;&amp;~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; a -&gt; b</li><li class="src short"><a href="#v:-60-.-126-">(&lt;.~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; (d, b)</li><li class="src short"><a href="#v:assign">assign</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:.-61-">(.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-37--61-">(%=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; (c -&gt; d) -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-43--61-">(+=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-45--61-">(-=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-42--61-">(*=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-47--47--61-">(//=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-94--61-">(^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> c) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; c -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-94--94--61-">(^^=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> b, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Integral">Integral</a> c) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; c -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-42--42--61-">(**=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-124--124--61-">(||=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-38--38--61-">(&amp;&amp;=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:-60-.-61-">(&lt;.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m d</li><li class="src short"><a href="#v:-60--126-">(&lt;~)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; m d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:ReifiedSetter">ReifiedSetter</a> a b c d = <a href="#v:ReifySetter">ReifySetter</a> {<ul class="subs"><li><a href="#v:reflectSetter">reflectSetter</a> :: <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a b c d</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setting">Setting</a> a b c d = (c -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> d) -&gt; a -&gt; <a href="Control-Lens-Internal.html#t:Mutator">Mutator</a> b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleSetting">SimpleSetting</a> a b = <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a b b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleSetter">SimpleSetter</a> a b = <a href="Control-Lens-Setter.html#t:Setter">Setter</a> a a b b</li><li class="src short"><span class="keyword">type</span> <a href="#t:SimpleReifiedSetter">SimpleReifiedSetter</a> a b = <a href="Control-Lens-Setter.html#t:ReifiedSetter">ReifiedSetter</a> a a b b</li></ul></div><div id="interface"><h1 id="g:1">Setters
20 20
 </h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Setter" class="def">Setter</a> a b c d = <span class="keyword">forall</span> f. <a href="Control-Lens-Internal.html#t:Settable">Settable</a> f =&gt; (c -&gt; f d) -&gt; a -&gt; f b<a href="src/Control-Lens-Setter.html#Setter" class="link">Source</a></p><div class="doc"><p>The only <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>-like law that can apply to a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> <code>l</code> is that
21 21
 </p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> l c (<code><a href="Control-Lens-Setter.html#v:set">set</a></code> l b a) = <code><a href="Control-Lens-Setter.html#v:set">set</a></code> l c a</pre><p>You can't <code>view</code> a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> in general, so the other two laws are irrelevant.
22 22
 </p><p>However, two <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Functor">Functor</a></code> laws apply to a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>:
@@ -171,10 +171,10 @@
171 171
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>both ||~ False $ (False,True)
172 172
 </code></strong>(False,True)
173 173
 </pre><pre>
174  
- (||~):: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
175  
- (||~):: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
176  
- (||~):: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
177  
- (||~):: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  174
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  175
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  176
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  177
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
178 178
 </pre></div></div><div class="top"><p class="src"><a name="v:-38--38--126-" class="def">(&amp;&amp;~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; a -&gt; b<a href="src/Control-Lens-Setter.html#%26%26~" class="link">Source</a></p><div class="doc"><p>Logically <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#v:-38--38-">&amp;&amp;</a></code> the target(s) of a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code>-valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>
179 179
 </p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>:m + Control.Lens
180 180
 </code></strong></pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>both &amp;&amp;~ True $ (False, True)
@@ -182,21 +182,30 @@
182 182
 </pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>both &amp;&amp;~ False $ (False, True)
183 183
 </code></strong>(False,False)
184 184
 </pre><pre>
185  
- (&amp;&amp;~):: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
186  
- (&amp;&amp;~):: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
187  
- (&amp;&amp;~):: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
188  
- (&amp;&amp;~):: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  185
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&amp;&amp;~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  186
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&amp;&amp;~</a></code>) :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  187
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&amp;&amp;~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
  188
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&amp;&amp;~</a></code>) :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; a -&gt; b
189 189
 </pre></div></div><div class="top"><p class="src"><a name="v:-60-.-126-" class="def">(&lt;.~)</a> ::  <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a b c d -&gt; d -&gt; a -&gt; (d, b)<a href="src/Control-Lens-Setter.html#%3C.~" class="link">Source</a></p><div class="doc"><p>Set with pass-through
190 190
 </p><p>This is mostly present for consistency, but may be useful for for chaining assignments
191 191
 </p><p>If you do not need a copy of the intermediate result, then using <code>l <code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code> d</code> directly is a good idea.
192 192
 </p><pre>
193  
- (<code>\&lt;.~</code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b c d    -&gt; d -&gt; a -&gt; (d, b)
194  
- (<code>\&lt;.~</code>) :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b c d       -&gt; d -&gt; a -&gt; (d, b)
195  
- (<code>\&lt;.~</code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b c d      -&gt; d -&gt; a -&gt; (d, b)
196  
- (<code>\&lt;.~</code>) :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b c d -&gt; d -&gt; a -&gt; (d, b)
  193
+ (<code><a href="Control-Lens-Setter.html#v:-60-.-126-">&lt;.~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a b c d    -&gt; d -&gt; a -&gt; (d, b)
  194
+ (<code><a href="Control-Lens-Setter.html#v:-60-.-126-">&lt;.~</a></code>) :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a b c d       -&gt; d -&gt; a -&gt; (d, b)
  195
+ (<code><a href="Control-Lens-Setter.html#v:-60-.-126-">&lt;.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a b c d      -&gt; d -&gt; a -&gt; (d, b)
  196
+ (<code><a href="Control-Lens-Setter.html#v:-60-.-126-">&lt;.~</a></code>) :: <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a b c d -&gt; d -&gt; a -&gt; (d, b)
197 197
 </pre></div></div><h1 id="g:5">State Combinators
198  
-</h1><div class="top"><p class="src"><a name="v:.-61-" class="def">(.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#.%3D" class="link">Source</a></p><div class="doc"><p>Replace the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or all of the targets of a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> in our monadic
  198
+</h1><div class="top"><p class="src"><a name="v:assign" class="def">assign</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#assign" class="link">Source</a></p><div class="doc"><p>Replace the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or all of the targets of a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> in our monadic
199 199
  state with a new value, irrespective of the old.
  200
+</p><p>This is an alias for (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>).
  201
+</p><pre>
  202
+ <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a a c d             -&gt; d -&gt; m ()
  203
+ <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a a c d            -&gt; d -&gt; m ()
  204
+ <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> a a c d       -&gt; d -&gt; m ()
  205
+ <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> a a c d          -&gt; d -&gt; m ()
  206
+</pre></div></div><div class="top"><p class="src"><a name="v:.-61-" class="def">(.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#.%3D" class="link">Source</a></p><div class="doc"><p>Replace the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or all of the targets of a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> in our monadic
  207
+ state with a new value, irrespective of the old.
  208
+</p><p>This is an infix version of <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code>.
200 209
 </p><pre>
201 210
  (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> a a c d             -&gt; d -&gt; m ()
202 211
  (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&gt; <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> a a c d            -&gt; d -&gt; m ()
@@ -223,10 +232,10 @@
223 232
  (<code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
224 233
 </pre></div></div><div class="top"><p class="src"><a name="v:-45--61-" class="def">(-=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#-%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> by subtracting a value
225 234
 </p><pre>
226  
- (-=) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
227  
- (-=) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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> a b -&gt; b -&gt; m ()
228  
- (-=) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
229  
- (-=) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
  235
+ (<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
  236
+ (<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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> a b -&gt; b -&gt; m ()
  237
+ (<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
  238
+ (<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
230 239
 </pre></div></div><div class="top"><p class="src"><a name="v:-42--61-" class="def">(*=)</a> :: (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b) =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a b -&gt; b -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#%2A%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> by multiplying by value.
231 240
 </p><pre>ballSpeed <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Traversal.html#v:both">both</a></code> <code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code> speedMultiplier</pre><pre>
232 241
  (<code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code>) :: (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a></code> b) =&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 b -&gt; b -&gt; m ()
@@ -259,16 +268,16 @@
259 268
  (<code><a href="Control-Lens-Setter.html#v:-42--42--61-">**=</a></code>) ::  (<code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m, <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a></code> b) =&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 b -&gt; b -&gt; m ()
260 269
 </pre></div></div><div class="top"><p class="src"><a name="v:-124--124--61-" class="def">(||=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#%7C%7C%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, 'Iso, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> by taking their logical <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#v:-124--124-">||</a></code> with a value
261 270
 </p><pre>
262  
- (||=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&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 <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
263  
- (||=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
264  
- (||=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
265  
- (||=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  271
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&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 <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  272
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  273
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  274
+ (<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
266 275
 </pre></div></div><div class="top"><p class="src"><a name="v:-38--38--61-" class="def">(&amp;&amp;=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:SimpleSetting">SimpleSetting</a> a <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; m <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Control-Lens-Setter.html#%26%26%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code> by taking their logical <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#v:-38--38-">&amp;&amp;</a></code> with a value
267 276
 </p><pre>
268  
- (&amp;&amp;=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&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 <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
269  
- (&amp;&amp;=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
270  
- (&amp;&amp;=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
271  
- (&amp;&amp;=):: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  277
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&amp;&amp;=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a m =&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 <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  278
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&amp;&amp;=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  279
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&amp;&amp;=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
  280
+ (<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&amp;&amp;=</a></code>) :: <code><a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> a 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> a <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> -&gt; m ()
272 281
 </pre></div></div><div class="top"><p class="src"><a name="v:-60-.-61-" class="def">(&lt;.=)</a> :: <a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> a m =&gt; <a href="Control-Lens-Setter.html#t:Setting">Setting</a> a a c d -&gt; d -&gt; m d<a href="src/Control-Lens-Setter.html#%3C.%3D" class="link">Source</a></p><div class="doc"><p>Set with pass-through
273 282
 </p><p>This is useful for chaining assignment without round-tripping through your monad stack.
274 283
 </p><pre>do x &lt;- <code>_2</code> &lt;.= ninety_nine_bottles_of_beer_on_the_wall</pre><p>If you do not need a copy of the intermediate result, then using <code>l .= d</code> will avoid unused binding warnings
94  Control-Lens-TH.html
... ...
@@ -1,41 +1,69 @@
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.TH</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-TH.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-TH.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>TemplateHaskell</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.TH</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Constructing Lenses Automatically
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">data</span>  <a href="#t:LensRules">LensRules</a>  = <a href="#v:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</li><li class="src short"><a href="#v:lensIso">lensIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:lensField">lensField</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:lensClass">lensClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>))</li><li class="src short"><a href="#v:lensFlags">lensFlags</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:LensFlag">LensFlag</a> <ul class="subs"><li>= <a href="#v:SimpleLenses">SimpleLenses</a>  </li><li>| <a href="#v:SingletonAndField">SingletonAndField</a>  </li><li>| <a href="#v:SingletonIso">SingletonIso</a>  </li><li>| <a href="#v:HandleSingletons">HandleSingletons</a>  </li><li>| <a href="#v:SingletonRequired">SingletonRequired</a>  </li><li>| <a href="#v:CreateClass">CreateClass</a>  </li><li>| <a href="#v:CreateInstance">CreateInstance</a>  </li><li>| <a href="#v:ClassRequired">ClassRequired</a>  </li></ul></li><li class="src short"><a href="#v:simpleLenses">simpleLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:handleSingletons">handleSingletons</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:singletonIso">singletonIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:singletonRequired">singletonRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:createClass">createClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:createInstance">createInstance</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:classRequired">classRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:makeClassy">makeClassy</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeClassyFor">makeClassyFor</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeIso">makeIso</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeLenses">makeLenses</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeLensesFor">makeLensesFor</a> :: [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeLensesWith">makeLensesWith</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:lensRules">lensRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:classyRules">classyRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:isoRules">isoRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:defaultRules">defaultRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:LensRules" class="def">LensRules</a>  <a href="src/Control-Lens-TH.html#LensRules" class="link">Source</a></p><div class="doc"><p>This configuration describes the options we'll be using to make isomorphisms or lenses
6  
-</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LensRules" class="def">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:lensIso" class="def">lensIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)<a href="src/Control-Lens-TH.html#lensIso" class="link">Source</a></p><div class="doc"><p>Lens to access the convention for naming top level isomorphisms in our lens rules
7  
-</p><p>Defaults to lowercasing the first letter of the constructor.
8  
-</p></div></div><div class="top"><p class="src"><a name="v:lensField" class="def">lensField</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)<a href="src/Control-Lens-TH.html#lensField" class="link">Source</a></p><div class="doc"><p>Lens to access the convention for naming fields in our lens rules
9  
-</p><p>Defaults to stripping the _ off of the field name and lowercasing the name and
10  
- rejecting the field if it doesn't start with an '_'.
11  
-</p></div></div><div class="top"><p class="src"><a name="v:lensClass" class="def">lensClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>))<a href="src/Control-Lens-TH.html#lensClass" class="link">Source</a></p><div class="doc"><p>Retrieve options such as the name of the class and method to put in it to build a class around monomorphic data types.
12  
-</p></div></div><div class="top"><p class="src"><a name="v:lensFlags" class="def">lensFlags</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)<a href="src/Control-Lens-TH.html#lensFlags" class="link">Source</a></p><div class="doc"><p>Retrieve options such as the name of the class and method to put in it to build a class around monomorphic data types.
13  
-</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:LensFlag" class="def">LensFlag</a>  <a href="src/Control-Lens-TH.html#LensFlag" class="link">Source</a></p><div class="doc"><p>Flags for lens construction
14  
-</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SimpleLenses" class="def">SimpleLenses</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonAndField" class="def">SingletonAndField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonIso" class="def">SingletonIso</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HandleSingletons" class="def">HandleSingletons</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonRequired" class="def">SingletonRequired</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CreateClass" class="def">CreateClass</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CreateInstance" class="def">CreateInstance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ClassRequired" class="def">ClassRequired</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:LensFlag" class="caption collapser" onclick="toggleSection('i:LensFlag')">Instances</p><div id="section.i:LensFlag" class="show"><table><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:simpleLenses" class="def">simpleLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#simpleLenses" class="link">Source</a></p><div class="doc"><p>Only Generate valid <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> lenses
15  
-</p></div></div><div class="top"><p class="src"><a name="v:handleSingletons" class="def">handleSingletons</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#handleSingletons" class="link">Source</a></p><div class="doc"><p>Handle singleton constructors specially
16  
-</p></div></div><div class="top"><p class="src"><a name="v:singletonIso" class="def">singletonIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#singletonIso" class="link">Source</a></p><div class="doc"><p>Use Iso for singleton constructors
17  
-</p></div></div><div class="top"><p class="src"><a name="v:singletonRequired" class="def">singletonRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#singletonRequired" class="link">Source</a></p><div class="doc"><p>Expect a single constructor, single field newtype or data type.
18  
-</p></div></div><div class="top"><p class="src"><a name="v:createClass" class="def">createClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#createClass" class="link">Source</a></p><div class="doc"><p>Create the class if the constructor is simple and the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> rule matches
19  
-</p></div></div><div class="top"><p class="src"><a name="v:createInstance" class="def">createInstance</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#createInstance" class="link">Source</a></p><div class="doc"><p>Create the instance if the constructor is simple and the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> rule matches
20  
-</p></div></div><div class="top"><p class="src"><a name="v:classRequired" class="def">classRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#classRequired" class="link">Source</a></p><div class="doc"><p>Die if the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> fails to match
21  
-</p></div></div><h1 id="g:1">Constructing Lenses Automatically
22  
-</h1><div class="top"><p class="src"><a name="v:makeClassy" class="def">makeClassy</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeClassy" class="link">Source</a></p><div class="doc"><p>Make 'classy lenses' for a type
23  
-</p><pre> makeClassy = makeLensesWith classyRules
24  
-</pre></div></div><div class="top"><p class="src"><a name="v:makeClassyFor" class="def">makeClassyFor</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeClassyFor" class="link">Source</a></p><div class="doc"><p>Derive lenses, specifying explicit pairings of <code>(fieldName, lensName)</code>
25  
- using a wrapper class.
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-TH.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>TemplateHaskell</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.TH</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Constructing Lenses Automatically
  5
+</a></li><li><a href="#g:2">Configuring Lenses
  6
+</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:makeLenses">makeLenses</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeLensesFor">makeLensesFor</a> :: [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeClassy">makeClassy</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeClassyFor">makeClassyFor</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeIso">makeIso</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:makeLensesWith">makeLensesWith</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:defaultRules">defaultRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:LensRules">LensRules</a>  = <a href="#v:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</li><li class="src short"><a href="#v:lensRules">lensRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:classyRules">classyRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:isoRules">isoRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a></li><li class="src short"><a href="#v:lensIso">lensIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:lensField">lensField</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:lensClass">lensClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>))</li><li class="src short"><a href="#v:lensFlags">lensFlags</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:LensFlag">LensFlag</a> <ul class="subs"><li>= <a href="#v:SimpleLenses">SimpleLenses</a>  </li><li>| <a href="#v:PartialLenses">PartialLenses</a>  </li><li>| <a href="#v:BuildTraversals">BuildTraversals</a>  </li><li>| <a href="#v:SingletonAndField">SingletonAndField</a>  </li><li>| <a href="#v:SingletonIso">SingletonIso</a>  </li><li>| <a href="#v:HandleSingletons">HandleSingletons</a>  </li><li>| <a href="#v:SingletonRequired">SingletonRequired</a>  </li><li>| <a href="#v:CreateClass">CreateClass</a>  </li><li>| <a href="#v:CreateInstance">CreateInstance</a>  </li><li>| <a href="#v:ClassRequired">ClassRequired</a>  </li></ul></li><li class="src short"><a href="#v:simpleLenses">simpleLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:partialLenses">partialLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:handleSingletons">handleSingletons</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:singletonIso">singletonIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:singletonRequired">singletonRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:createClass">createClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:createInstance">createInstance</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:classRequired">classRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">Constructing Lenses Automatically
  7
+</h1><div class="top"><p class="src"><a name="v:makeLenses" class="def">makeLenses</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLenses" class="link">Source</a></p><div class="doc"><p>Build lenses (and traversals) with a sensible default configuration.
  8
+</p><pre> makeLenses = makeLensesWith lensRules
  9
+</pre></div></div><div class="top"><p class="src"><a name="v:makeLensesFor" class="def">makeLensesFor</a> :: [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLensesFor" class="link">Source</a></p><div class="doc"><p>Derive lenses and traversals, specifying explicit pairings of <code>(fieldName, lensName)</code>.
  10
+</p><p>If you map multiple names to the same label, and it is present in the same constructor then this will generate a <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>.
  11
+</p><p><em>e.g.</em>
  12
+</p><pre> makeLensesFor [(&quot;_foo&quot;, &quot;fooLens&quot;), (&quot;baz&quot;, &quot;lbaz&quot;)] ''Foo
  13
+ makeLensesFor [(&quot;_barX&quot;, &quot;bar&quot;), (&quot;_barY&quot;, &quot;bar)] ''Bar
  14
+</pre></div></div><div class="top"><p class="src"><a name="v:makeClassy" class="def">makeClassy</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeClassy" class="link">Source</a></p><div class="doc"><p>Make lenses and traversals for a type, and create a class when the type has no arguments.
  15
+</p><p><em>e.g.</em>
  16
+</p><pre>
  17
+ data Foo = Foo { _fooX, _fooY :: <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></code> }
  18
+ <code><a href="Control-Lens-TH.html#v:makeClassy">makeClassy</a></code> ''Foo
  19
+</pre><p>will create
  20
+</p><pre>
  21
+ class HasFoo t where
  22
+   foo :: <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> t Foo
  23
+ instance HasFoo Foo where foo = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:id">id</a></code>
  24
+ fooX, fooY :: HasFoo t =&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> t <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a></code>
  25
+</pre><pre> makeClassy = makeLensesWith classyRules
  26
+</pre></div></div><div class="top"><p class="src"><a name="v:makeClassyFor" class="def">makeClassyFor</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeClassyFor" class="link">Source</a></p><div class="doc"><p>Derive lenses and traversals, using a named wrapper class, and specifying
  27
+ explicit pairings of <code>(fieldName, traversalName)</code>.
26 28
 </p><p>Example usage:
27 29
 </p><pre> makeClassyFor &quot;HasFoo&quot; &quot;foo&quot; [(&quot;_foo&quot;, &quot;fooLens&quot;), (&quot;bar&quot;, &quot;lbar&quot;)] ''Foo
28  
-</pre></div></div><div class="top"><p class="src"><a name="v:makeIso" class="def">makeIso</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeIso" class="link">Source</a></p><div class="doc"><p>Make a top level isomorphism injecting _into_ the type
  30
+</pre></div></div><div class="top"><p class="src"><a name="v:makeIso" class="def">makeIso</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeIso" class="link">Source</a></p><div class="doc"><p>Make a top level isomorphism injecting <em>into</em> the type.
29 31
 </p><p>The supplied name is required to be for a type with a single constructor that has a single argument
30  
-</p><pre> makeIso = makeLensesWith isoRules
31  
-</pre></div></div><div class="top"><p class="src"><a name="v:makeLenses" class="def">makeLenses</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLenses" class="link">Source</a></p><div class="doc"><p>Build lenses with a sensible default configuration
32  
-</p><pre> makeLenses = makeLensesWith lensRules
33  
-</pre></div></div><div class="top"><p class="src"><a name="v:makeLensesFor" class="def">makeLensesFor</a> :: [(<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)] -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLensesFor" class="link">Source</a></p><div class="doc"><p>Derive lenses, specifying explicit pairings of <code>(fieldName, lensName)</code>.
34  
-</p><p>Example usage:
35  
-</p><pre> makeLensesFor [(&quot;_foo&quot;, &quot;fooLens&quot;), (&quot;bar&quot;, &quot;lbar&quot;)] ''Foo
36  
-</pre></div></div><div class="top"><p class="src"><a name="v:makeLensesWith" class="def">makeLensesWith</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLensesWith" class="link">Source</a></p><div class="doc"><p>Build lenses with a custom configuration
37  
-</p></div></div><div class="top"><p class="src"><a name="v:lensRules" class="def">lensRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#lensRules" class="link">Source</a></p><div class="doc"><p>Rules for making fairly simple lenses, ignoring the special cases for isomorphisms, and not making any classes.
38  
-</p></div></div><div class="top"><p class="src"><a name="v:classyRules" class="def">classyRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#classyRules" class="link">Source</a></p><div class="doc"><p>Rules for making lenses that precompose another lens.
39  
-</p></div></div><div class="top"><p class="src"><a name="v:isoRules" class="def">isoRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#isoRules" class="link">Source</a></p><div class="doc"><p>Rules for making an isomorphism from a data type
  32
+</p><p><em>e.g.</em>
  33
+</p><pre>
  34
+ newtype List a = List [a]
  35
+ makeIso ''List
  36
+</pre><p>will create
  37
+</p><pre>
  38
+ list :: Iso [a] [b] (<code>List</code> a) (<code>List</code> b)
  39
+</pre><pre> makeIso = makeLensesWith isoRules
  40
+</pre></div></div><h1 id="g:2">Configuring Lenses
  41
+</h1><div class="top"><p class="src"><a name="v:makeLensesWith" class="def">makeLensesWith</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]<a href="src/Control-Lens-TH.html#makeLensesWith" class="link">Source</a></p><div class="doc"><p>Build lenses with a custom configuration.
40 42
 </p></div></div><div class="top"><p class="src"><a name="v:defaultRules" class="def">defaultRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#defaultRules" class="link">Source</a></p><div class="doc"><p>Default lens rules
  43
+</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:LensRules" class="def">LensRules</a>  <a href="src/Control-Lens-TH.html#LensRules" class="link">Source</a></p><div class="doc"><p>This configuration describes the options we'll be using to make isomorphisms or lenses.
  44
+</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LensRules" class="def">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:lensRules" class="def">lensRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#lensRules" class="link">Source</a></p><div class="doc"><p>Rules for making fairly simple partial lenses, ignoring the special cases
  45
+ for isomorphisms and traversals, and not making any classes.
  46
+</p></div></div><div class="top"><p class="src"><a name="v:classyRules" class="def">classyRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#classyRules" class="link">Source</a></p><div class="doc"><p>Rules for making lenses and traversals that precompose another lens.
  47
+</p></div></div><div class="top"><p class="src"><a name="v:isoRules" class="def">isoRules</a> :: <a href="Control-Lens-TH.html#t:LensRules">LensRules</a><a href="src/Control-Lens-TH.html#isoRules" class="link">Source</a></p><div class="doc"><p>Rules for making an isomorphism from a data type
  48
+</p></div></div><div class="top"><p class="src"><a name="v:lensIso" class="def">lensIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)<a href="src/Control-Lens-TH.html#lensIso" class="link">Source</a></p><div class="doc"><p>Lens to access the convention for naming top level isomorphisms in our lens rules.
  49
+</p><p>Defaults to lowercasing the first letter of the constructor.
  50
+</p></div></div><div class="top"><p class="src"><a name="v:lensField" class="def">lensField</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>)<a href="src/Control-Lens-TH.html#lensField" class="link">Source</a></p><div class="doc"><p>Lens to access the convention for naming fields in our lens rules.
  51
+</p><p>Defaults to stripping the _ off of the field name, lowercasing the name, and
  52
+ rejecting the field if it doesn't start with an '_'.
  53
+</p></div></div><div class="top"><p class="src"><a name="v:lensClass" class="def">lensClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>))<a href="src/Control-Lens-TH.html#lensClass" class="link">Source</a></p><div class="doc"><p>Retrieve options such as the name of the class and method to put in it to
  54
+ build a class around monomorphic data types.
  55
+</p></div></div><div class="top"><p class="src"><a name="v:lensFlags" class="def">lensFlags</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a>)<a href="src/Control-Lens-TH.html#lensFlags" class="link">Source</a></p><div class="doc"><p>Retrieve options such as the name of the class and method to put in it to
  56
+ build a class around monomorphic data types.
  57
+</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:LensFlag" class="def">LensFlag</a>  <a href="src/Control-Lens-TH.html#LensFlag" class="link">Source</a></p><div class="doc"><p>Flags for lens construction
  58
+</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SimpleLenses" class="def">SimpleLenses</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PartialLenses" class="def">PartialLenses</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:BuildTraversals" class="def">BuildTraversals</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonAndField" class="def">SingletonAndField</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonIso" class="def">SingletonIso</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HandleSingletons" class="def">HandleSingletons</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SingletonRequired" class="def">SingletonRequired</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CreateClass" class="def">CreateClass</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CreateInstance" class="def">CreateInstance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ClassRequired" class="def">ClassRequired</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:LensFlag" class="caption collapser" onclick="toggleSection('i:LensFlag')">Instances</p><div id="section.i:LensFlag" class="show"><table><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Control-Lens-TH.html#t:LensFlag">LensFlag</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:simpleLenses" class="def">simpleLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#simpleLenses" class="link">Source</a></p><div class="doc"><p>Only Generate valid <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> lenses.
  59
+</p></div></div><div class="top"><p class="src"><a name="v:partialLenses" class="def">partialLenses</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#partialLenses" class="link">Source</a></p><div class="doc"><p>Enables the generation of partial lenses, generating runtime errors for
  60
+ every constructor that does not have a valid definition for the lens. This
  61
+ occurs when the constructor lacks the field, or has multiple fields mapped
  62
+ to the same lens.
  63
+</p></div></div><div class="top"><p class="src"><a name="v:handleSingletons" class="def">handleSingletons</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#handleSingletons" class="link">Source</a></p><div class="doc"><p>Handle singleton constructors specially.
  64
+</p></div></div><div class="top"><p class="src"><a name="v:singletonIso" class="def">singletonIso</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#singletonIso" class="link">Source</a></p><div class="doc"><p>Use <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> for singleton constructors.
  65
+</p></div></div><div class="top"><p class="src"><a name="v:singletonRequired" class="def">singletonRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#singletonRequired" class="link">Source</a></p><div class="doc"><p>Expect a single constructor, single field newtype or data type.
  66
+</p></div></div><div class="top"><p class="src"><a name="v:createClass" class="def">createClass</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#createClass" class="link">Source</a></p><div class="doc"><p>Create the class if the constructor is simple and the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> rule matches.
  67
+</p></div></div><div class="top"><p class="src"><a name="v:createInstance" class="def">createInstance</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#createInstance" class="link">Source</a></p><div class="doc"><p>Create the instance if the constructor is simple and the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> rule matches.
  68
+</p></div></div><div class="top"><p class="src"><a name="v:classRequired" class="def">classRequired</a> :: <a href="Control-Lens-Type.html#t:Simple">Simple</a> <a href="Control-Lens-Type.html#t:Lens">Lens</a> <a href="Control-Lens-TH.html#t:LensRules">LensRules</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-TH.html#classRequired" class="link">Source</a></p><div class="doc"><p>Die if the <code><a href="Control-Lens-TH.html#v:lensClass">lensClass</a></code> fails to match.
41 69
 </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>
4  Control-Lens-Traversal.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.Traversal</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-Traversal.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Traversal.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Traversal</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-Traversal.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Traversal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
5 5
 </a><ul><li><a href="#g:2">Lensing Traversals
6 6
 </a></li></ul></li><li><a href="#g:3">Traversing and Lensing
7 7
 </a></li><li><a href="#g:4">Common Traversals
@@ -137,7 +137,7 @@
137 137
     (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Traversable.html#v:foldMapDefault">foldMapDefault</a></code>).
138 138
 </li></ul></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:traverse" class="def">traverse</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; f b) -&gt; t a -&gt; f (t b)</p><div class="doc"><p>Map each element of a structure to an action, evaluate
139 139
  these actions from left to right, and collect the results.
140  
-</p></div></div><div class="subs instances"><p id="control.i:Traversable" class="caption collapser" onclick="toggleSection('i:Traversable')">Instances</p><div id="section.i:Traversable" class="show"><table><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Tree.html#t:Tree">Tree</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:ViewL">ViewL</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:ViewR">ViewR</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Node</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Digit</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> FingerTree</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Elem</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ix.html#t:Ix">Ix</a> i =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/array-0.4.0.0/Data-Array.html#t:Array">Array</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-List.html#t:ListT">ListT</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc"><p>Derived instance.
  140
+</p></div></div><div class="subs instances"><p id="control.i:Traversable" class="caption collapser" onclick="toggleSection('i:Traversable')">Instances</p><div id="section.i:Traversable" class="show"><table><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Tree.html#t:Tree">Tree</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:Seq">Seq</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:ViewL">ViewL</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Sequence.html#t:ViewR">ViewR</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-IntMap.html#t:IntMap">IntMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Elem</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Node</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> Digit</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> FingerTree</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ix.html#t:Ix">Ix</a> i =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/array-0.4.0.0/Data-Array.html#t:Array">Array</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/containers-0.4.2.1/Data-Map.html#t:Map">Map</a> k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-List.html#t:ListT">ListT</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</td><td class="doc"><p>Derived instance.
141 141
 </p></td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Monad-Trans-Maybe.html#t:MaybeT">MaybeT</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Control-Monad-Trans-Identity.html#t:IdentityT">IdentityT</a> f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (HashMap k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Error.html#t:ErrorT">ErrorT</a> e f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/mtl-2.1.1/doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> g) =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="/Library/Haskell/ghc-7.4.1/lib/transformers-0.3.0.0/doc/html/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> w =&gt; <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (EnvT e w)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ignored" class="def">ignored</a> ::  <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> a a c d<a href="src/Control-Lens-Traversal.html#ignored" class="link">Source</a></p><div class="doc"><p>This is the traversal that just doesn't return anything
142 142
 </p><pre><code><a href="Control-Lens-Traversal.html#v:ignored">ignored</a></code> :: <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code> f =&gt; (c -&gt; f d) -&gt; a -&gt; f a</pre><pre><code><a href="Control-Lens-Traversal.html#v:ignored">ignored</a></code> = <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#v:const">const</a></code> <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#v:pure">pure</a></code></pre></div></div><div class="top"><p class="src"><a name="v:traverseLeft" class="def">traverseLeft</a> ::  <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a c) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b c) a b<a href="src/Control-Lens-Traversal.html#traverseLeft" class="link">Source</a></p><div class="doc"><p>A traversal for tweaking the left-hand value of an <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code>:
143 143
 </p><pre>traverseLeft :: <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Applicative.html#t:Applicative">Applicative</a></code> f =&gt; (a -&gt; f b) -&gt; <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code> a c -&gt; f (<code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code> b c)</pre></div></div><div class="top"><p class="src"><a name="v:traverseRight" class="def">traverseRight</a> ::  <a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c a) (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> c b) a b<a href="src/Control-Lens-Traversal.html#traverseRight" class="link">Source</a></p><div class="doc"><p>traverse the right-hand value of an <code><a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code>:
2  Control-Lens-Tuple.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.Tuple</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-Tuple.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Tuple.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Tuple</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Tuples
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Tuple.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Tuple</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Tuples
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">class</span>  <a href="#t:Field1">Field1</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_1">_1</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field2">Field2</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_2">_2</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field3">Field3</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_3">_3</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field4">Field4</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_4">_4</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field5">Field5</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_5">_5</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field6">Field6</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_6">_6</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field7">Field7</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_7">_7</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field8">Field8</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_8">_8</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Field9">Field9</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><ul class="subs"><li><a href="#v:_9">_9</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Tuples
6 6
 </h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Field1" class="def">Field1</a> a b c d | a -&gt; c, b -&gt; d, a d -&gt; b, b c -&gt; a <span class="keyword">where</span><a href="src/Control-Lens-Tuple.html#Field1" class="link">Source</a></p><div class="doc"><p>Provides access to 1st field of a tuple.
7 7
 </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:_1" class="def">_1</a> :: <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d<a href="src/Control-Lens-Tuple.html#_1" class="link">Source</a></p><div class="doc"><p>Access the 1st field of a tuple (and possibly change its type).
9  Control-Lens-Type.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.Type</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-Type.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Type.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Type</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Type.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.Type</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Lenses
5 5
 </a></li><li><a href="#g:2">Lateral Composition
6 6
 </a></li><li><a href="#g:3">Setting Functionally with Passthrough
7 7
 </a></li><li><a href="#g:4">Setting State with Passthrough
@@ -37,9 +37,8 @@
37 37
 </p><pre><code><a href="Control-Lens-Getter.html#v:view">view</a></code> l (<code><a href="Control-Lens-Setter.html#v:set">set</a></code> l b a)  = b</pre><p>2) Putting back what you got doesn't change anything:
38 38
 </p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> l (<code><a href="Control-Lens-Getter.html#v:view">view</a></code> l a) a  = a</pre><p>3) Setting twice is the same as setting once:
39 39
 </p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> l c (<code><a href="Control-Lens-Setter.html#v:set">set</a></code> l b a) = <code><a href="Control-Lens-Setter.html#v:set">set</a></code> l c a</pre><p>These laws are strong enough that the 4 type parameters of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> cannot
40  
- vary fully independently. For more on how they interact, read the <a href="Why is
41  
- it a Lens Family?.html">Why is
42  
- it a Lens Family?</a> section of
  40
+ vary fully independently. For more on how they interact, read the &quot;Why is
  41
+ it a Lens Family?&quot; section of
43 42
  <a href="http://comonad.com/reader/2012/mirrored-lenses/">http://comonad.com/reader/2012/mirrored-lenses/</a>.
44 43
 </p><p>Every <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> can be used directly as a <code>Setter</code> or
45 44
  <code><a href="Control-Lens-Traversal.html#t:Traversal">Traversal</a></code>.
@@ -97,7 +96,7 @@
97 96
 </p></div></div><div class="top"><p class="src"><a name="v:alongside" class="def">alongside</a> ::  <a href="Control-Lens-Type.html#t:Lens">Lens</a> a b c d -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> a' b' c' d' -&gt; <a href="Control-Lens-Type.html#t:Lens">Lens</a> (a, a') (b, b') (c, c') (d, d')<a href="src/Control-Lens-Type.html#alongside" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-Type.html#v:alongside">alongside</a></code> makes a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> from two other lenses (or isomorphisms)
98 97
 </p></div></div><h1 id="g:3">Setting Functionally with Passthrough
99 98
 </h1><div class="top"><p class="src"><a name="v:-60--37--126-" class="def">(&lt;%~)</a> ::  <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> d) a b c d -&gt; (c -&gt; d) -&gt; a -&gt; (d, b)<a href="src/Control-Lens-Type.html#%3C%25~" class="link">Source</a></p><div class="doc"><p>Modify the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> and return the result
100  
-</p><p>When you do not need the result of the addition, (<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) is more flexible.
  99
+</p><p>When you do not need the result of the addition, (<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) is more flexible.
101 100
 </p></div></div><div class="top"><p class="src"><a name="v:-60--43--126-" class="def">(&lt;+~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> c) a b c c -&gt; c -&gt; a -&gt; (c, b)<a href="src/Control-Lens-Type.html#%3C%2B~" class="link">Source</a></p><div class="doc"><p>Increment the target of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> and return the result
102 101
 </p><p>When you do not need the result of the addition, (<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) is more flexible.
103 102
 </p></div></div><div class="top"><p class="src"><a name="v:-60--45--126-" class="def">(&lt;-~)</a> :: <a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> c =&gt; <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="/Library/Frameworks/GHC.framework/Versions/7.4.1-x86_64/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a> c) a b c c -&gt; c -&gt; a -&gt; (c, b)<a href="src/Control-Lens-Type.html#%3C-~" class="link">Source</a></p><div class="doc"><p>Decrement the target of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> and return the result
26  Control-Lens-WithIndex.html
... ...
@@ -1,13 +1,14 @@
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.WithIndex</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-WithIndex.html");};
3 3
 //]]>
4  
-</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-WithIndex.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-2.5: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.WithIndex</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Functors
  4
+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-WithIndex.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-2.6: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Lens.WithIndex</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Indexed Functors
5 5
 </a></li><li><a href="#g:2">Indexed Foldables
6 6
 </a><ul><li><a href="#g:3">Indexed Foldable Combinators
7  
-</a></li></ul></li><li><a href="#g:4">Indexed Traversables
8  
-</a></li><li><a href="#g:5">Indexed Traversable Combinators
  7
+</a></li></ul></li><li><a href="#g:4">Converting to Folds
  8
+</a></li><li><a href="#g:5">Indexed Traversables
  9
+</a></li><li><a href="#g:6">Indexed Traversable Combinators