/usr/share/doc/libghc-lens-doc/html/Control-Lens-Setter.html is in libghc-lens-doc 4.13-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 | <!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[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Setter.html");};
//]]>
</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-4.13: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(C) 2012-15 Edward Kmett</td></tr><tr><th>License</th><td>BSD-style (see the file LICENSE)</td></tr><tr><th>Maintainer</th><td>Edward Kmett <ekmett@gmail.com></td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Lens.Setter</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Setters</a></li><li><a href="#g:2">Building Setters</a></li><li><a href="#g:3">Common Setters</a></li><li><a href="#g:4">Functional Combinators</a></li><li><a href="#g:5">State Combinators</a></li><li><a href="#g:6">Writer Combinators</a></li><li><a href="#g:7">Simplified State Setting</a></li><li><a href="#g:8">Indexed Setters</a></li><li><a href="#g:9">Arrow operators</a></li><li><a href="#g:10">Exported for legible error messages</a></li><li><a href="#g:11">Deprecated</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A <code><code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b</code> is a generalization of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> from <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>. It allows you to map into a
structure and change out the contents, but it isn't strong enough to allow you to
enumerate those contents. Starting with <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> f => (a -> b) -> f a -> f b</code>
we monomorphize the type to obtain <code>(a -> b) -> s -> t</code> and then decorate it with <code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> to obtain:</p><pre>type <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b = (a -> <code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> b) -> s -> <code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> t
</pre><p>Every <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> is a valid <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>, since <code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> is <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a></code>.</p><p>Everything you can do with a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>, you can do with a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>. There
are combinators that generalize <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> and (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:-60--36-"><$</a></code>).</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> s t a b = <span class="keyword">forall</span> f. <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f => (a -> f b) -> s -> f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setter-39-">Setter'</a> s a = <a href="Control-Lens-Setter.html#t:Setter">Setter</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f) => p a (f b) -> s -> f t</li><li class="src short"><span class="keyword">type</span> <a href="#t:IndexedSetter-39-">IndexedSetter'</a> i s a = <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:ASetter">ASetter</a> s t a b = (a -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t</li><li class="src short"><span class="keyword">type</span> <a href="#t:ASetter-39-">ASetter'</a> s a = <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b = <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIndexedSetter-39-">AnIndexedSetter'</a> i s a = <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setting">Setting</a> p s t a b = p a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t</li><li class="src short"><span class="keyword">type</span> <a href="#t:Setting-39-">Setting'</a> p s a = <a href="Control-Lens-Setter.html#t:Setting">Setting</a> p s s a a</li><li class="src short"><a href="#v:sets">sets</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q, <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f) => (p a b -> q s t) -> <a href="Control-Lens-Type.html#t:Optical">Optical</a> p q f s t a b</li><li class="src short"><a href="#v:setting">setting</a> :: ((a -> b) -> s -> t) -> <a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a> s t a b</li><li class="src short"><a href="#v:cloneSetter">cloneSetter</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> <a href="Control-Lens-Setter.html#t:Setter">Setter</a> s t a b</li><li class="src short"><a href="#v:cloneIndexPreservingSetter">cloneIndexPreservingSetter</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> <a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a> s t a b</li><li class="src short"><a href="#v:cloneIndexedSetter">cloneIndexedSetter</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s t a b</li><li class="src short"><a href="#v:mapped">mapped</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f a) (f b) a b</li><li class="src short"><a href="#v:lifted">lifted</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (m a) (m b) a b</li><li class="src short"><a href="#v:contramapped">contramapped</a> :: <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f b) (f a) a b</li><li class="src short"><a href="#v:argument">argument</a> :: <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (p b r) (p a r) a b</li><li class="src short"><a href="#v:over">over</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t</li><li class="src short"><a href="#v:set">set</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> t</li><li class="src short"><a href="#v:.-126-">(.~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> t</li><li class="src short"><a href="#v:-37--126-">(%~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t</li><li class="src short"><a href="#v:-43--126-">(+~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-45--126-">(-~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-42--126-">(*~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-47--47--126-">(//~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-94--126-">(^~)</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> e -> s -> t</li><li class="src short"><a href="#v:-94--94--126-">(^^~)</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> e -> s -> t</li><li class="src short"><a href="#v:-42--42--126-">(**~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-124--124--126-">(||~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> s -> t</li><li class="src short"><a href="#v:-60--62--126-">(<>~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t</li><li class="src short"><a href="#v:-38--38--126-">(&&~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> s -> t</li><li class="src short"><a href="#v:-60-.-126-">(<.~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> (b, t)</li><li class="src short"><a href="#v:-63--126-">(?~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> s -> t</li><li class="src short"><a href="#v:-60--63--126-">(<?~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> s -> (b, t)</li><li class="src short"><a href="#v:assign">assign</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m ()</li><li class="src short"><a href="#v:modifying">modifying</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> (a -> b) -> m ()</li><li class="src short"><a href="#v:.-61-">(.=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m ()</li><li class="src short"><a href="#v:-37--61-">(%=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> (a -> b) -> m ()</li><li class="src short"><a href="#v:-43--61-">(+=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-45--61-">(-=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-42--61-">(*=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-47--47--61-">(//=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-94--61-">(^=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> e -> m ()</li><li class="src short"><a href="#v:-94--94--61-">(^^=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> e -> m ()</li><li class="src short"><a href="#v:-42--42--61-">(**=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-124--124--61-">(||=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> m ()</li><li class="src short"><a href="#v:-60--62--61-">(<>=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m ()</li><li class="src short"><a href="#v:-38--38--61-">(&&=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> m ()</li><li class="src short"><a href="#v:-60-.-61-">(<.=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m b</li><li class="src short"><a href="#v:-63--61-">(?=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> m ()</li><li class="src short"><a href="#v:-60--63--61-">(<?=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> m b</li><li class="src short"><a href="#v:-60--126-">(<~)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> m b -> m ()</li><li class="src short"><a href="#v:scribe">scribe</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> t m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> s) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> m ()</li><li class="src short"><a href="#v:passing">passing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> w w u v -> m (a, u -> v) -> m a</li><li class="src short"><a href="#v:ipassing">ipassing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i w w u v -> m (a, i -> u -> v) -> m a</li><li class="src short"><a href="#v:censoring">censoring</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> w w u v -> (u -> v) -> m a -> m a</li><li class="src short"><a href="#v:icensoring">icensoring</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i w w u v -> (i -> u -> v) -> m a -> m a</li><li class="src short"><a href="#v:set-39-">set'</a> :: <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> s -> s</li><li class="src short"><a href="#v:imapOf">imapOf</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t</li><li class="src short"><a href="#v:iover">iover</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t</li><li class="src short"><a href="#v:iset">iset</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> b) -> s -> t</li><li class="src short"><a href="#v:imodifying">imodifying</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> a -> b) -> m ()</li><li class="src short"><a href="#v:isets">isets</a> :: ((i -> a -> b) -> s -> t) -> <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s t a b</li><li class="src short"><a href="#v:-37--64--126-">(%@~)</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t</li><li class="src short"><a href="#v:.-64--126-">(.@~)</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> b) -> s -> t</li><li class="src short"><a href="#v:-37--64--61-">(%@=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> a -> b) -> m ()</li><li class="src short"><a href="#v:.-64--61-">(.@=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> b) -> m ()</li><li class="src short"><a href="#v:assignA">assignA</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a> p => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> p s b -> p s t</li><li class="src short"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="file:///usr/share/doc/libghc-distributive-doc/html/Data-Distributive.html#t:Distributive">Distributive</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f) => <a href="#t:Settable">Settable</a> f</li><li class="src short"><span class="keyword">newtype</span> <a href="#t:Identity">Identity</a> a :: * -> * = <a href="#v:Identity">Identity</a> {<ul class="subs"><li><a href="#v:runIdentity">runIdentity</a> :: a</li></ul>}</li><li class="src short"><a href="#v:mapOf">mapOf</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t</li></ul></div><div id="interface"><h1 id="g:1">Setters</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Setter" class="def">Setter</a> s t a b = <span class="keyword">forall</span> f. <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f => (a -> f b) -> s -> f t <a href="src/Control-Lens-Type.html#Setter" class="link">Source</a></p><div class="doc"><p>The only <code><a href="Control-Lens-Type.html#t:LensLike">LensLike</a></code> law that can apply to a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> <code>l</code> is that</p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> l y (<code><a href="Control-Lens-Setter.html#v:set">set</a></code> l x a) ≡ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> l y a
</pre><p>You can't <code><a href="Control-Lens-Getter.html#v:view">view</a></code> a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> in general, so the other two laws are irrelevant.</p><p>However, two <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> laws apply to a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>:</p><pre><code><a href="Control-Lens-Setter.html#v:over">over</a></code> l <code>id</code> ≡ <code>id</code>
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> l f <code>.</code> <code><a href="Control-Lens-Setter.html#v:over">over</a></code> l g ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> l (f <code>.</code> g)
</pre><p>These can be stated more directly:</p><pre>l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#v:pure">pure</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#v:pure">pure</a></code>
l f <code>.</code> <code><a href="Control-Lens-Internal-Setter.html#v:untainted">untainted</a></code> <code>.</code> l g ≡ l (f <code>.</code> <code><a href="Control-Lens-Internal-Setter.html#v:untainted">untainted</a></code> <code>.</code> g)
</pre><p>You can compose a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> with a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> or a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> using (<code>.</code>) from the <code>Prelude</code>
and the result is always only a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> and nothing more.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over traverse f [a,b,c,d]
</code></strong>[f a,f b,f c,f d]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over _1 f (a,b)
</code></strong>(f a,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over (traverse._1) f [(a,b),(c,d)]
</code></strong>[(f a,b),(f c,d)]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over both f (a,b)
</code></strong>(f a,f b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over (traverse.both) f [(a,b),(c,d)]
</code></strong>[(f a,f b),(f c,f d)]
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Setter-39-" class="def">Setter'</a> s a = <a href="Control-Lens-Setter.html#t:Setter">Setter</a> s s a a <a href="src/Control-Lens-Type.html#Setter%27" class="link">Source</a></p><div class="doc"><p>A <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> is just a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> that doesn't change the types.</p><p>These are particularly common when talking about monomorphic containers. <em>e.g.</em></p><pre><code>sets</code> Data.Text.map :: <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> <code><a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Internal.html#v:Text">Text</a></code> <code>Char</code>
</pre><pre>type <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> = <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedSetter" class="def">IndexedSetter</a> i s t a b = <span class="keyword">forall</span> f p. (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f) => p a (f b) -> s -> f t <a href="src/Control-Lens-Type.html#IndexedSetter" class="link">Source</a></p><div class="doc"><p>Every <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> is a valid <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>.</p><p>The <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> laws are still required to hold.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IndexedSetter-39-" class="def">IndexedSetter'</a> i s a = <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s s a a <a href="src/Control-Lens-Type.html#IndexedSetter%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Setter.html#t:IndexedSetter-39-">IndexedSetter'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i)
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ASetter" class="def">ASetter</a> s t a b = (a -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t <a href="src/Control-Lens-Setter.html#ASetter" class="link">Source</a></p><div class="doc"><p>Running a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> instantiates it to a concrete type.</p><p>When consuming a setter directly to perform a mapping, you can use this type, but most
user code will not need to use this type.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ASetter-39-" class="def">ASetter'</a> s a = <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a a <a href="src/Control-Lens-Setter.html#ASetter%27" class="link">Source</a></p><div class="doc"><p>This is a useful alias for use when consuming a <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code>.</p><p>Most user code will never have to use this type.</p><pre>type <code><a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Setter.html#t:ASetter">ASetter</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIndexedSetter" class="def">AnIndexedSetter</a> i s t a b = <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t <a href="src/Control-Lens-Setter.html#AnIndexedSetter" class="link">Source</a></p><div class="doc"><p>Running an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> instantiates it to a concrete type.</p><p>When consuming a setter directly to perform a mapping, you can use this type, but most
user code will not need to use this type.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:AnIndexedSetter-39-" class="def">AnIndexedSetter'</a> i s a = <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a a <a href="src/Control-Lens-Setter.html#AnIndexedSetter%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Setter.html#t:AnIndexedSetter-39-">AnIndexedSetter'</a></code> i = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> (<code><a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a></code> i)
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Setting" class="def">Setting</a> p s t a b = p a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -> s -> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> t <a href="src/Control-Lens-Setter.html#Setting" class="link">Source</a></p><div class="doc"><p>This is a convenient alias when defining highly polymorphic code that takes both
<code><a href="Control-Lens-Setter.html#t:ASetter">ASetter</a></code> and <code><a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a></code> as appropriate. If a function takes this it is
expecting one of those two things based on context.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Setting-39-" class="def">Setting'</a> p s a = <a href="Control-Lens-Setter.html#t:Setting">Setting</a> p s s a a <a href="src/Control-Lens-Setter.html#Setting%27" class="link">Source</a></p><div class="doc"><p>This is a convenient alias when defining highly polymorphic code that takes both
<code><a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a></code> and <code><a href="Control-Lens-Setter.html#t:AnIndexedSetter-39-">AnIndexedSetter'</a></code> as appropriate. If a function takes this it is
expecting one of those two things based on context.</p></div></div><h1 id="g:2">Building Setters</h1><div class="top"><p class="src"><a name="v:sets" class="def">sets</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q, <a href="Control-Lens-Setter.html#t:Settable">Settable</a> f) => (p a b -> q s t) -> <a href="Control-Lens-Type.html#t:Optical">Optical</a> p q f s t a b <a href="src/Control-Lens-Setter.html#sets" class="link">Source</a></p><div class="doc"><p>Build a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>, <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> or <code><a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a></code> depending on your choice of <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>.</p><pre><code><a href="Control-Lens-Setter.html#v:sets">sets</a></code> :: ((a -> b) -> s -> t) -> <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b
</pre></div></div><div class="top"><p class="src"><a name="v:setting" class="def">setting</a> :: ((a -> b) -> s -> t) -> <a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a> s t a b <a href="src/Control-Lens-Setter.html#setting" class="link">Source</a></p><div class="doc"><p>Build an index-preserving <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> from a map-like function.</p><p>Your supplied function <code>f</code> is required to satisfy:</p><pre>f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
f g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> f h ≡ f (g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> h)
</pre><p>Equational reasoning:</p><pre><code><a href="Control-Lens-Setter.html#v:setting">setting</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:over">over</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:setting">setting</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
</pre><p>Another way to view <code><a href="Control-Lens-Setter.html#v:sets">sets</a></code> is that it takes a "semantic editor combinator"
and transforms it into a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>.</p><pre><code><a href="Control-Lens-Setter.html#v:setting">setting</a></code> :: ((a -> b) -> s -> t) -> <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b
</pre></div></div><div class="top"><p class="src"><a name="v:cloneSetter" class="def">cloneSetter</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> <a href="Control-Lens-Setter.html#t:Setter">Setter</a> s t a b <a href="src/Control-Lens-Setter.html#cloneSetter" class="link">Source</a></p><div class="doc"><p>Restore <code><a href="Control-Lens-Setter.html#t:ASetter">ASetter</a></code> to a full <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:cloneIndexPreservingSetter" class="def">cloneIndexPreservingSetter</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> <a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a> s t a b <a href="src/Control-Lens-Setter.html#cloneIndexPreservingSetter" class="link">Source</a></p><div class="doc"><p>Build an <code><a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a></code> from any <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:cloneIndexedSetter" class="def">cloneIndexedSetter</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s t a b <a href="src/Control-Lens-Setter.html#cloneIndexedSetter" class="link">Source</a></p><div class="doc"><p>Clone an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>.</p></div></div><h1 id="g:3">Common Setters</h1><div class="top"><p class="src"><a name="v:mapped" class="def">mapped</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f a) (f b) a b <a href="src/Control-Lens-Setter.html#mapped" class="link">Source</a></p><div class="doc"><p>This <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> can be used to map over all of the values in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>.</p><pre><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code>
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:fmapDefault">fmapDefault</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:traverse">traverse</a></code>
(<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:-60--36-"><$</a></code>) ≡ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code>
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over mapped f [a,b,c]
</code></strong>[f a,f b,f c]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over mapped (+1) [1,2,3]
</code></strong>[2,3,4]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set mapped x [a,b,c]
</code></strong>[x,x,x]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>[[a,b],[c]] & mapped.mapped +~ x
</code></strong>[[a + x,b + x],[c + x]]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over (mapped._2) length [("hello","world"),("leaders","!!!")]
</code></strong>[("hello",5),("leaders",3)]
</pre><pre><code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> f => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> (f a) (f b) a b
</pre><p>If you want an <code><a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a></code> use <code><code><a href="Control-Lens-Setter.html#v:setting">setting</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code></code>.</p></div></div><div class="top"><p class="src"><a name="v:lifted" class="def">lifted</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (m a) (m b) a b <a href="src/Control-Lens-Setter.html#lifted" class="link">Source</a></p><div class="doc"><p>This <code>setter</code> can be used to modify all of the values in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code>.</p><p>You sometimes have to use this rather than <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> -- due to
temporary insanity <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code> is not a superclass of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code>.</p><pre><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#v:liftM">liftM</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="Control-Lens-Setter.html#v:lifted">lifted</a></code>
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over lifted f [a,b,c]
</code></strong>[f a,f b,f c]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set lifted b (Just a)
</code></strong>Just b
</pre><p>If you want an <code><a href="Control-Lens-Type.html#t:IndexPreservingSetter">IndexPreservingSetter</a></code> use <code><code><a href="Control-Lens-Setter.html#v:setting">setting</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#v:liftM">liftM</a></code></code>.</p></div></div><div class="top"><p class="src"><a name="v:contramapped" class="def">contramapped</a> :: <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (f b) (f a) a b <a href="src/Control-Lens-Setter.html#contramapped" class="link">Source</a></p><div class="doc"><p>This <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> can be used to map over all of the inputs to a <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code>.</p><pre><code><a href="Control-Lens-Getter.html#v:contramap">contramap</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="Control-Lens-Setter.html#v:contramapped">contramapped</a></code>
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>getPredicate (over contramapped (*2) (Predicate even)) 5
</code></strong>True
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>getOp (over contramapped (*5) (Op show)) 100
</code></strong>"500"
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Prelude.map ($ 1) $ over (mapped . _Unwrapping' Op . contramapped) (*12) [(*2),(+1),(^3)]
</code></strong>[24,13,1728]
</pre></div></div><div class="top"><p class="src"><a name="v:argument" class="def">argument</a> :: <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> (p b r) (p a r) a b <a href="src/Control-Lens-Setter.html#argument" class="link">Source</a></p><div class="doc"><p>This <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> can be used to map over the input of a <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>.</p><p>The most common <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> to use this with is <code>(->)</code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(argument %~ f) g x
</code></strong>g (f x)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(argument %~ show) length [1,2,3]
</code></strong>7
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(argument %~ f) h x y
</code></strong>h (f x) y
</pre><p>Map over the argument of the result of a function -- i.e., its second
argument:</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(mapped.argument %~ f) h x y
</code></strong>h x (f y)
</pre><pre><code><a href="Control-Lens-Setter.html#v:argument">argument</a></code> :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> (b -> r) (a -> r) a b
</pre></div></div><h1 id="g:4">Functional Combinators</h1><div class="top"><p class="src"><a name="v:over" class="def">over</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t <a href="src/Control-Lens-Setter.html#over" 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> or all the targets of a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>
with a function.</p><pre><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code>
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:fmapDefault">fmapDefault</a></code> ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:traverse">traverse</a></code>
<code><a href="Control-Lens-Setter.html#v:sets">sets</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:over">over</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:sets">sets</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
</pre><p>Given any valid <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> <code>l</code>, you can also rely on the law:</p><pre><code><a href="Control-Lens-Setter.html#v:over">over</a></code> l f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:over">over</a></code> l g = <code><a href="Control-Lens-Setter.html#v:over">over</a></code> l (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> g)
</pre><p><em>e.g.</em></p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over mapped f (over mapped g [a,b,c]) == over mapped (f . g) [a,b,c]
</code></strong>True
</pre><p>Another way to view <code><a href="Control-Lens-Setter.html#v:over">over</a></code> is to say that it transforms a <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> into a
"semantic editor combinator".</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over mapped f (Just a)
</code></strong>Just (f a)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over mapped (*10) [1,2,3]
</code></strong>[10,20,30]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over _1 f (a,b)
</code></strong>(f a,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>over _1 show (10,20)
</code></strong>("10",20)
</pre><pre><code><a href="Control-Lens-Setter.html#v:over">over</a></code> :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> (a -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> :: <code><a href="Control-Lens-Setter.html#t:ASetter">ASetter</a></code> s t a b -> (a -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:set" class="def">set</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> t <a href="src/Control-Lens-Setter.html#set" 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-Type.html#t:Traversal">Traversal</a></code> with a constant value.</p><pre>(<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:-60--36-"><$</a></code>) ≡ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code>
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set _2 "hello" (1,())
</code></strong>(1,"hello")
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set mapped () [1,2,3,4]
</code></strong>[(),(),(),()]
</pre><p>Note: Attempting to <code><a href="Control-Lens-Setter.html#v:set">set</a></code> a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> will fail at compile time with an
relatively nice error message.</p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> b -> s -> t
<code><a href="Control-Lens-Setter.html#v:set">set</a></code> :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a b -> b -> s -> t
<code><a href="Control-Lens-Setter.html#v:set">set</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b -> b -> s -> t
<code><a href="Control-Lens-Setter.html#v:set">set</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a b -> b -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:.-126-" class="def">(.~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#.~" 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-Type.html#t:Traversal">Traversal</a></code> with a constant value.</p><p>This is an infix version of <code><a href="Control-Lens-Setter.html#v:set">set</a></code>, provided for consistency with (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>).</p><pre>f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:-60--36-"><$</a></code> a ≡ <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> <code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:-36-">$</a></code> a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b,c,d) & _4 .~ e
</code></strong>(a,b,c,e)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(42,"world") & _1 .~ "hello"
</code></strong>("hello","world")
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both .~ c
</code></strong>(c,c)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a b -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a b -> b -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:-37--126-" class="def">(%~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%25~" class="link">Source</a></p><div class="doc"><p>Modifies 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-Type.html#t:Traversal">Traversal</a></code> with a user supplied function.</p><p>This is an infix version of <code><a href="Control-Lens-Setter.html#v:over">over</a></code>.</p><pre><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#v:fmap">fmap</a></code> f ≡ <code><a href="Control-Lens-Setter.html#v:mapped">mapped</a></code> <code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code> f
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:fmapDefault">fmapDefault</a></code> f ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Traversable.html#v:traverse">traverse</a></code> <code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code> f
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b,c) & _3 %~ f
</code></strong>(a,b,f c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both %~ f
</code></strong>(f a,f b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>_2 %~ length $ (1,"hello")
</code></strong>(1,5)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>traverse %~ f $ [a,b,c]
</code></strong>[f a,f b,f c]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>traverse %~ even $ [1,2,3]
</code></strong>[False,True,False]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>traverse.traverse %~ length $ [["hello","world"],["!!!"]]
</code></strong>[[5,5],[3]]
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> (a -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a b -> (a -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b -> (a -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a b -> (a -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:-43--126-" class="def">(+~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2B~" class="link">Source</a></p><div class="doc"><p>Increment the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 +~ c
</code></strong>(a + c,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both +~ c
</code></strong>(a + c,b + c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(1,2) & _2 +~ 1
</code></strong>(1,3)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>[(a,b),(c,d)] & traverse.both +~ e
</code></strong>[(a + e,b + e),(c + e,d + e)]
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-43--126-">+~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-45--126-" class="def">(-~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#-~" class="link">Source</a></p><div class="doc"><p>Decrement the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 -~ c
</code></strong>(a - c,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both -~ c
</code></strong>(a - c,b - c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>_1 -~ 2 $ (1,2)
</code></strong>(-1,2)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>mapped.mapped -~ 1 $ [[4,5],[6,7]]
</code></strong>[[3,4],[5,6]]
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-45--126-">-~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-45--126-">-~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-45--126-">-~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-45--126-">-~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-42--126-" class="def">(*~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2A~" class="link">Source</a></p><div class="doc"><p>Multiply the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 *~ c
</code></strong>(a * c,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both *~ c
</code></strong>(a * c,b * c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(1,2) & _2 *~ 4
</code></strong>(1,8)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Just 24 & mapped *~ 2
</code></strong>Just 48
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-42--126-">*~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--126-">*~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--126-">*~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--126-">*~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-47--47--126-" class="def">(//~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2F%2F~" class="link">Source</a></p><div class="doc"><p>Divide the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 //~ c
</code></strong>(a / c,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both //~ c
</code></strong>(a / c,b / c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>("Hawaii",10) & _2 //~ 2
</code></strong>("Hawaii",5.0)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-47--47--126-">//~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-47--47--126-">//~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-47--47--126-">//~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-47--47--126-">//~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-94--126-" class="def">(^~)</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> e -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%5E~" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to a non-negative integral power.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(1,3) & _2 ^~ 2
</code></strong>(1,9)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-94--126-">^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--126-">^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--126-">^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--126-">^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> e -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-94--94--126-" class="def">(^^~)</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> e -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%5E%5E~" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a fractionally valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to an integral power.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(1,2) & _2 ^^~ (-1)
</code></strong>(1,0.5)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-94--94--126-">^^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--94--126-">^^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--94--126-">^^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> e -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-94--94--126-">^^~</a></code>) :: (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> e -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-42--42--126-" class="def">(**~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2A%2A~" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a floating-point valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to an arbitrary power.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 **~ c
</code></strong>(a**c,b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & both **~ c
</code></strong>(a**c,b**c)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>_2 **~ 10 $ (3,2)
</code></strong>(3,1024.0)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-42--42--126-">**~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--42--126-">**~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--42--126-">**~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-42--42--126-">**~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-124--124--126-" class="def">(||~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%7C%7C~" class="link">Source</a></p><div class="doc"><p>Logically <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#v:-124--124-">||</a></code> the target(s) of a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.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>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>both ||~ True $ (False,True)
</code></strong>(True,True)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>both ||~ False $ (False,True)
</code></strong>(False,True)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-124--124--126-">||~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-60--62--126-" class="def">(<>~)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a a -> a -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C%3E~" class="link">Source</a></p><div class="doc"><p>Modify the target of a monoidally valued by <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:mappend">mappend</a></code>ing another value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(Sum a,b) & _1 <>~ Sum c
</code></strong>(Sum {getSum = a + c},b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(Sum a,Sum b) & both <>~ Sum c
</code></strong>(Sum {getSum = a + c},Sum {getSum = b + c})
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>both <>~ "!!!" $ ("hello","world")
</code></strong>("hello!!!","world!!!")
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-60--62--126-"><>~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a a -> a -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-60--62--126-"><>~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a => <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a a -> a -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-60--62--126-"><>~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a => <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a a -> a -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-60--62--126-"><>~</a></code>) :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a => <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a a -> a -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:-38--38--126-" class="def">(&&~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%26%26~" class="link">Source</a></p><div class="doc"><p>Logically <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#v:-38--38-">&&</a></code> the target(s) of a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.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>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>both &&~ True $ (False, True)
</code></strong>(False,True)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>both &&~ False $ (False, True)
</code></strong>(False,False)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&&~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&&~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&&~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
(<code><a href="Control-Lens-Setter.html#v:-38--38--126-">&&~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> s -> s
</pre></div></div><div class="top"><p class="src"><a name="v:-60-.-126-" class="def">(<.~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> s -> (b, t) <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C.~" class="link">Source</a></p><div class="doc"><p>Set with pass-through.</p><p>This is mostly present for consistency, but may be useful for chaining assignments.</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> t</code> directly is a good idea.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(a,b) & _1 <.~ c
</code></strong>(c,(c,b))
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>("good","morning","vietnam") & _3 <.~ "world"
</code></strong>("world",("good","morning","world"))
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>(42,Map.fromList [("goodnight","gracie")]) & _2.at "hello" <.~ Just "world"
</code></strong>(Just "world",(42,fromList [("goodnight","gracie"),("hello","world")]))
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-60-.-126-"><.~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60-.-126-"><.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a b -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60-.-126-"><.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60-.-126-"><.~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a b -> b -> s -> (b, t)
</pre></div></div><div class="top"><p class="src"><a name="v:-63--126-" class="def">(?~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3F~" class="link">Source</a></p><div class="doc"><p>Set the target of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> or <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> to <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#v:Just">Just</a></code> a value.</p><pre>l <code><a href="Control-Lens-Setter.html#v:-63--126-">?~</a></code> t ≡ <code><a href="Control-Lens-Setter.html#v:set">set</a></code> l (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#v:Just">Just</a></code> t)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Nothing & id ?~ a
</code></strong>Just a
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Map.empty & at 3 ?~ x
</code></strong>fromList [(3,x)]
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-63--126-">?~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-63--126-">?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-63--126-">?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-63--126-">?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:-60--63--126-" class="def">(<?~)</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> s -> (b, t) <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C%3F~" class="link">Source</a></p><div class="doc"><p>Set to <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#v:Just">Just</a></code> a value with pass-through.</p><p>This is mostly present for consistency, but may be useful for for chaining assignments.</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:-63--126-">?~</a></code> d</code> directly is a good idea.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>import Data.Map as Map
</code></strong><code class="prompt">>>> </code><strong class="userinput"><code>_2.at "hello" <?~ "world" $ (42,Map.fromList [("goodnight","gracie")])
</code></strong>("world",(42,fromList [("goodnight","gracie"),("hello","world")]))
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-60--63--126-"><?~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60--63--126-"><?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60--63--126-"><?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> (b, t)
(<code><a href="Control-Lens-Setter.html#v:-60--63--126-"><?~</a></code>) :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> s -> (b, t)
</pre></div></div><h1 id="g:5">State Combinators</h1><div class="top"><p class="src"><a name="v:assign" class="def">assign</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m () <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-Type.html#t:Traversal">Traversal</a></code> in our monadic
state with a new value, irrespective of the old.</p><p>This is an alias for (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>).</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do assign _1 c; assign _2 d) (a,b)
</code></strong>(c,d)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (both .= c) (a,b)
</code></strong>(c,c)
</pre><pre><code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
<code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
<code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
<code><a href="Control-Lens-Setter.html#v:assign">assign</a></code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:modifying" class="def">modifying</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> (a -> b) -> m () <a href="src/Control-Lens-Setter.html#modifying" class="link">Source</a></p><div class="doc"><p>This is an alias for (<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>).</p></div></div><div class="top"><p class="src"><a name="v:.-61-" class="def">(.=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <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-Type.html#t:Traversal">Traversal</a></code> in our monadic state with a new value, irrespective of the
old.</p><p>This is an infix version of <code><a href="Control-Lens-Setter.html#v:assign">assign</a></code>.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 .= c; _2 .= d) (a,b)
</code></strong>(c,d)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (both .= c) (a,b)
</code></strong>(c,c)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
</pre><p><em>It puts the state in the monad or it gets the hose again.</em></p></div></div><div class="top"><p class="src"><a name="v:-37--61-" class="def">(%=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> (a -> b) -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%25%3D" class="link">Source</a></p><div class="doc"><p>Map over 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-Type.html#t:Traversal">Traversal</a></code> in our monadic state.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 %= f;_2 %= g) (a,b)
</code></strong>(f a,g b)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do both %= f) (a,b)
</code></strong>(f a,f b)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> (a -> a) -> m ()
(<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> (a -> a) -> m ()
(<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> (a -> a) -> m ()
(<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> (a -> a) -> m ()
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:ASetter">ASetter</a></code> s s a b -> (a -> b) -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-43--61-" class="def">(+=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2B%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by adding a value.</p><p>Example:</p><pre><code>fresh</code> :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></code> m => m <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></code>
<code>fresh</code> = do
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code> <code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code> 1
<code><a href="Control-Lens-Getter.html#v:use">use</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 += c; _2 += d) (a,b)
</code></strong>(a + c,b + d)
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1.at 1.non 0 += 10) (Map.fromList [(2,100)],"hello")
</code></strong>(fromList [(1,10),(2,100)],"hello")
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-43--61-">+=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-45--61-" class="def">(-=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <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:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by subtracting a value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 -= c; _2 -= d) (a,b)
</code></strong>(a - c,b - d)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-45--61-">-=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-42--61-" class="def">(*=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <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:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by multiplying by value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 *= c; _2 *= d) (a,b)
</code></strong>(a * c,b * d)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--61-">*=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-47--47--61-" class="def">(//=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2F%2F%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by dividing by a value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 //= c; _2 //= d) (a,b)
</code></strong>(a / c,b / d)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-47--47--61-">//=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-47--47--61-">//=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-47--47--61-">//=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-47--47--61-">//=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-94--61-" class="def">(^=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> e -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%5E%3D" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to a non-negative integral power.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-94--61-">^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--61-">^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--61-">^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--61-">^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Num">Num</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> e -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-94--94--61-" class="def">(^^=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a> e) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> e -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%5E%5E%3D" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to an integral power.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-94--94--61-">^^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--94--61-">^^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--94--61-">^^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> e -> m ()
(<code><a href="Control-Lens-Setter.html#v:-94--94--61-">^^=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Fractional">Fractional</a></code> a, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Integral">Integral</a></code> e) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> e -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-42--42--61-" class="def">(**=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%2A%2A%3D" class="link">Source</a></p><div class="doc"><p>Raise the target(s) of a numerically valued <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to an arbitrary power</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 **= c; _2 **= d) (a,b)
</code></strong>(a**c,b**d)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-42--42--61-">**=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--42--61-">**=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--42--61-">**=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-42--42--61-">**=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Prelude.html#t:Floating">Floating</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-124--124--61-" class="def">(||=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <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:Lens-39-">Lens'</a></code>, 'Iso, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by taking their logical <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#v:-124--124-">||</a></code> with a value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 ||= True; _2 ||= False; _3 ||= True; _4 ||= False) (True,True,False,False)
</code></strong>(True,True,True,False)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-124--124--61-">||=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-60--62--61-" class="def">(<>=)</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> a) => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C%3E%3D" class="link">Source</a></p><div class="doc"><p>Modify the target(s) of a <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#v:mappend">mappend</a></code>ing a value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 <>= Sum c; _2 <>= Product d) (Sum a,Product b)
</code></strong>(Sum {getSum = a + c},Product {getProduct = b * d})
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (both <>= "!!!") ("hello","world")
</code></strong>("hello!!!","world!!!")
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-60--62--61-"><>=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a) => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--62--61-"><>=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a) => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--62--61-"><>=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a) => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--62--61-"><>=</a></code>) :: (<code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a></code> a) => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-38--38--61-" class="def">(&&=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a> -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <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:Lens-39-">Lens'</a></code>, <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> by taking their logical <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#v:-38--38-">&&</a></code> with a value.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 &&= True; _2 &&= False; _3 &&= True; _4 &&= False) (True,True,False,False)
</code></strong>(True,False,False,False)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&&=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&&=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&&=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
(<code><a href="Control-Lens-Setter.html#v:-38--38--61-">&&=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code> -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-60-.-61-" class="def">(<.=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> b -> m b <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C.%3D" class="link">Source</a></p><div class="doc"><p>Set with pass-through</p><p>This is useful for chaining assignment without round-tripping through your <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code> stack.</p><pre>do x <- <code><a href="Control-Lens-Tuple.html#v:_2">_2</a></code> <code><a href="Control-Lens-Setter.html#v:-60-.-61-"><.=</a></code> 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 <code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code> d</code> will avoid unused binding warnings.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-60-.-61-"><.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s s a b -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60-.-61-"><.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s s a b -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60-.-61-"><.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s s a b -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60-.-61-"><.=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s s a b -> b -> m b
</pre></div></div><div class="top"><p class="src"><a name="v:-63--61-" class="def">(?=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3F%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-Type.html#t:Traversal">Traversal</a></code> in our monadic
state with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#v:Just">Just</a></code> a new value, irrespective of the old.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do at 1 ?= a; at 2 ?= b) Map.empty
</code></strong>fromList [(1,a),(2,b)]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>execState (do _1 ?= b; _2 ?= c) (Just a, Nothing)
</code></strong>(Just b,Just c)
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-63--61-">?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> a) -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-63--61-">?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> a) -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-63--61-">?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> a) -> a -> m ()
(<code><a href="Control-Lens-Setter.html#v:-63--61-">?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> a) -> a -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:-60--63--61-" class="def">(<?=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> b) -> b -> m b <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C%3F%3D" class="link">Source</a></p><div class="doc"><p>Set <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#v:Just">Just</a></code> a value with pass-through</p><p>This is useful for chaining assignment without round-tripping through your <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a></code> stack.</p><pre>do x <- <code><a href="Control-Lens-At.html#v:at">at</a></code> "foo" <code><a href="Control-Lens-Setter.html#v:-60--63--61-"><?=</a></code> 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 <code><a href="Control-Lens-Setter.html#v:-63--61-">?=</a></code> d</code> will avoid unused binding warnings.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-60--63--61-"><?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s s a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60--63--61-"><?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s s a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60--63--61-"><?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s s a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> m b
(<code><a href="Control-Lens-Setter.html#v:-60--63--61-"><?=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s s a (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a></code> b) -> b -> m b
</pre></div></div><div class="top"><p class="src"><a name="v:-60--126-" class="def">(<~)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s s a b -> m b -> m () <span class="fixity">infixr 2</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%3C~" class="link">Source</a></p><div class="doc"><p>Run a monadic action, and set all of the targets of a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to its result.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s s a b -> m b -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s s a b -> m b -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s s a b -> m b -> m ()
(<code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s s a b -> m b -> m ()
</pre><p>As a reasonable mnemonic, this lets you store the result of a monadic action in a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> rather than
in a local variable.</p><pre>do foo <- bar
...
</pre><p>will store the result in a variable, while</p><pre>do foo <code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code> bar
...
</pre><p>will store the result in a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code>, or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code>.</p></div></div><h1 id="g:6">Writer Combinators</h1><div class="top"><p class="src"><a name="v:scribe" class="def">scribe</a> :: (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> t m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> s) => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> b -> m () <a href="src/Control-Lens-Setter.html#scribe" class="link">Source</a></p><div class="doc"><p>Write to a fragment of a larger <code>Writer</code> format.</p></div></div><div class="top"><p class="src"><a name="v:passing" class="def">passing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> w w u v -> m (a, u -> v) -> m a <a href="src/Control-Lens-Setter.html#passing" class="link">Source</a></p><div class="doc"><p>This is a generalization of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:pass">pass</a></code> that alows you to modify just a
portion of the resulting <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:ipassing" class="def">ipassing</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i w w u v -> m (a, i -> u -> v) -> m a <a href="src/Control-Lens-Setter.html#ipassing" class="link">Source</a></p><div class="doc"><p>This is a generalization of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:pass">pass</a></code> that alows you to modify just a
portion of the resulting <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code> with access to the index of an
<code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:censoring" class="def">censoring</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:Setter">Setter</a> w w u v -> (u -> v) -> m a -> m a <a href="src/Control-Lens-Setter.html#censoring" class="link">Source</a></p><div class="doc"><p>This is a generalization of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:censor">censor</a></code> that alows you to <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:censor">censor</a></code> just a
portion of the resulting <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:icensoring" class="def">icensoring</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m => <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i w w u v -> (i -> u -> v) -> m a -> m a <a href="src/Control-Lens-Setter.html#icensoring" class="link">Source</a></p><div class="doc"><p>This is a generalization of <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:censor">censor</a></code> that alows you to <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#v:censor">censor</a></code> just a
portion of the resulting <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a></code>, with access to the index of an
<code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>.</p></div></div><h1 id="g:7">Simplified State Setting</h1><div class="top"><p class="src"><a name="v:set-39-" class="def">set'</a> :: <a href="Control-Lens-Setter.html#t:ASetter-39-">ASetter'</a> s a -> a -> s -> s <a href="src/Control-Lens-Setter.html#set%27" 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-39-">Setter'</a></code>
or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> with a constant value, without changing its type.</p><p>This is a type restricted version of <code><a href="Control-Lens-Setter.html#v:set">set</a></code>, which retains the type of the original.</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set' mapped x [a,b,c,d]
</code></strong>[x,x,x,x]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set' _2 "hello" (1,"world")
</code></strong>(1,"hello")
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>set' mapped 0 [1,2,3,4]
</code></strong>[0,0,0,0]
</pre><p>Note: Attempting to adjust <code><a href="Control-Lens-Setter.html#v:set-39-">set'</a></code> a <code><a href="Control-Lens-Type.html#t:Fold">Fold</a></code> or <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> will fail at compile time with an
relatively nice error message.</p><pre><code><a href="Control-Lens-Setter.html#v:set-39-">set'</a></code> :: <code><a href="Control-Lens-Setter.html#t:Setter-39-">Setter'</a></code> s a -> a -> s -> s
<code><a href="Control-Lens-Setter.html#v:set-39-">set'</a></code> :: <code><a href="Control-Lens-Type.html#t:Iso-39-">Iso'</a></code> s a -> a -> s -> s
<code><a href="Control-Lens-Setter.html#v:set-39-">set'</a></code> :: <code><a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a></code> s a -> a -> s -> s
<code><a href="Control-Lens-Setter.html#v:set-39-">set'</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a></code> s a -> a -> s -> s
</pre></div></div><h1 id="g:8">Indexed Setters</h1><div class="top"><p class="src"><a name="v:imapOf" class="def">imapOf</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t <a href="src/Control-Lens-Setter.html#imapOf" class="link">Source</a></p><div class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code></p></div><p>Map with index. (Deprecated alias for <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code>).</p><p>When you do not need access to the index, then <code><a href="Control-Lens-Setter.html#v:mapOf">mapOf</a></code> is more liberal in what it can accept.</p><pre><code><a href="Control-Lens-Setter.html#v:mapOf">mapOf</a></code> l ≡ <code><a href="Control-Lens-Setter.html#v:imapOf">imapOf</a></code> l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code>
</pre><pre><code><a href="Control-Lens-Setter.html#v:imapOf">imapOf</a></code> :: <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s t a b -> (i -> a -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:imapOf">imapOf</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s t a b -> (i -> a -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:imapOf">imapOf</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> a -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:iover" class="def">iover</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t <a href="src/Control-Lens-Setter.html#iover" class="link">Source</a></p><div class="doc"><p>Map with index. This is an alias for <code><a href="Control-Lens-Setter.html#v:imapOf">imapOf</a></code>.</p><p>When you do not need access to the index, then <code><a href="Control-Lens-Setter.html#v:over">over</a></code> is more liberal in what it can accept.</p><pre><code><a href="Control-Lens-Setter.html#v:over">over</a></code> l ≡ <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code>
<code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> l ≡ <code><a href="Control-Lens-Setter.html#v:over">over</a></code> l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a></code>
</pre><pre><code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> :: <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s t a b -> (i -> a -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s t a b -> (i -> a -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> a -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:iset" class="def">iset</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> b) -> s -> t <a href="src/Control-Lens-Setter.html#iset" class="link">Source</a></p><div class="doc"><p>Set with index. Equivalent to <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> with the current value ignored.</p><p>When you do not need access to the index, then <code><a href="Control-Lens-Setter.html#v:set">set</a></code> is more liberal in what it can accept.</p><pre><code><a href="Control-Lens-Setter.html#v:set">set</a></code> l ≡ <code><a href="Control-Lens-Setter.html#v:iset">iset</a></code> l <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code>
</pre><pre><code><a href="Control-Lens-Setter.html#v:iset">iset</a></code> :: <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s t a b -> (i -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:iset">iset</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s t a b -> (i -> b) -> s -> t
<code><a href="Control-Lens-Setter.html#v:iset">iset</a></code> :: <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:imodifying" class="def">imodifying</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> a -> b) -> m () <a href="src/Control-Lens-Setter.html#imodifying" class="link">Source</a></p><div class="doc"><p>This is an alias for (<code><a href="Control-Lens-Setter.html#v:-37--64--61-">%@=</a></code>).</p></div></div><div class="top"><p class="src"><a name="v:isets" class="def">isets</a> :: ((i -> a -> b) -> s -> t) -> <a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a> i s t a b <a href="src/Control-Lens-Setter.html#isets" class="link">Source</a></p><div class="doc"><p>Build an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> from an <code><a href="Control-Lens-Indexed.html#v:imap">imap</a></code>-like function.</p><p>Your supplied function <code>f</code> is required to satisfy:</p><pre>f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
f g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> f h ≡ f (g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> h)
</pre><p>Equational reasoning:</p><pre><code><a href="Control-Lens-Setter.html#v:isets">isets</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
<code><a href="Control-Lens-Setter.html#v:iover">iover</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Setter.html#v:isets">isets</a></code> ≡ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:id">id</a></code>
</pre><p>Another way to view <code><a href="Control-Lens-Setter.html#v:isets">isets</a></code> is that it takes a "semantic editor combinator"
which has been modified to carry an index and transforms it into a <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:-37--64--126-" class="def">(%@~)</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> a -> b) -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%25%40~" class="link">Source</a></p><div class="doc"><p>Adjust every target of an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>
with access to the index.</p><pre>(<code><a href="Control-Lens-Setter.html#v:-37--64--126-">%@~</a></code>) ≡ <code><a href="Control-Lens-Setter.html#v:iover">iover</a></code>
</pre><p>When you do not need access to the index then (<code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code>) is more liberal in what it can accept.</p><pre>l <code><a href="Control-Lens-Setter.html#v:-37--126-">%~</a></code> f ≡ l <code><a href="Control-Lens-Setter.html#v:-37--64--126-">%@~</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code> f
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-37--64--126-">%@~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s t a b -> (i -> a -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-37--64--126-">%@~</a></code>) :: <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s t a b -> (i -> a -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:-37--64--126-">%@~</a></code>) :: <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> a -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:.-64--126-" class="def">(.@~)</a> :: <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s t a b -> (i -> b) -> s -> t <span class="fixity">infixr 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#.%40~" class="link">Source</a></p><div class="doc"><p>Replace every target of an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>
with access to the index.</p><pre>(<code><a href="Control-Lens-Setter.html#v:.-64--126-">.@~</a></code>) ≡ <code><a href="Control-Lens-Setter.html#v:iset">iset</a></code>
</pre><p>When you do not need access to the index then (<code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code>) is more liberal in what it can accept.</p><pre>l <code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code> b ≡ l <code><a href="Control-Lens-Setter.html#v:.-64--126-">.@~</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code> b
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:.-64--126-">.@~</a></code>) :: <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s t a b -> (i -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:.-64--126-">.@~</a></code>) :: <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s t a b -> (i -> b) -> s -> t
(<code><a href="Control-Lens-Setter.html#v:.-64--126-">.@~</a></code>) :: <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> b) -> s -> t
</pre></div></div><div class="top"><p class="src"><a name="v:-37--64--61-" class="def">(%@=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> a -> b) -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#%25%40%3D" class="link">Source</a></p><div class="doc"><p>Adjust every target in the current state of an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>
with access to the index.</p><p>When you do not need access to the index then (<code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code>) is more liberal in what it can accept.</p><pre>l <code><a href="Control-Lens-Setter.html#v:-37--61-">%=</a></code> f ≡ l <code><a href="Control-Lens-Setter.html#v:-37--64--61-">%@=</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code> f
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:-37--64--61-">%@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s s a b -> (i -> a -> b) -> m ()
(<code><a href="Control-Lens-Setter.html#v:-37--64--61-">%@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s s a b -> (i -> a -> b) -> m ()
(<code><a href="Control-Lens-Setter.html#v:-37--64--61-">%@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> a -> b) -> m ()
</pre></div></div><div class="top"><p class="src"><a name="v:.-64--61-" class="def">(.@=)</a> :: <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m => <a href="Control-Lens-Setter.html#t:AnIndexedSetter">AnIndexedSetter</a> i s s a b -> (i -> b) -> m () <span class="fixity">infix 4</span><span class="rightedge"></span> <a href="src/Control-Lens-Setter.html#.%40%3D" class="link">Source</a></p><div class="doc"><p>Replace every target in the current state of an <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code>, <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> or <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>
with access to the index.</p><p>When you do not need access to the index then (<code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code>) is more liberal in what it can accept.</p><pre>l <code><a href="Control-Lens-Setter.html#v:.-61-">.=</a></code> b ≡ l <code><a href="Control-Lens-Setter.html#v:.-64--61-">.@=</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Function.html#v:const">const</a></code> b
</pre><pre>(<code><a href="Control-Lens-Setter.html#v:.-64--61-">.@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Setter.html#t:IndexedSetter">IndexedSetter</a></code> i s s a b -> (i -> b) -> m ()
(<code><a href="Control-Lens-Setter.html#v:.-64--61-">.@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:IndexedLens">IndexedLens</a></code> i s s a b -> (i -> b) -> m ()
(<code><a href="Control-Lens-Setter.html#v:.-64--61-">.@=</a></code>) :: <code><a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a></code> s m => <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> i s t a b -> (i -> b) -> m ()
</pre></div></div><h1 id="g:9">Arrow operators</h1><div class="top"><p class="src"><a name="v:assignA" class="def">assignA</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a> p => <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> p s b -> p s t <a href="src/Control-Lens-Setter.html#assignA" class="link">Source</a></p><div class="doc"><p>Run an arrow command and use the output to set all the targets of
a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>, <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> or <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to the result.</p><p><code><a href="Control-Lens-Setter.html#v:assignA">assignA</a></code> can be used very similarly to (<code><a href="Control-Lens-Setter.html#v:-60--126-"><~</a></code>), except that the type of
the object being modified can change; for example:</p><pre>runKleisli action ((), (), ()) where
action = assignA _1 (Kleisli (const getVal1))
>>> assignA _2 (Kleisli (const getVal2))
>>> assignA _3 (Kleisli (const getVal3))
getVal1 :: Either String Int
getVal1 = ...
getVal2 :: Either String Bool
getVal2 = ...
getVal3 :: Either String Char
getVal3 = ...
</pre><p>has the type <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Either.html#t:Either">Either</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></code>, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a></code>, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Char.html#t:Char">Char</a></code>)</code></p><pre><code><a href="Control-Lens-Setter.html#v:assignA">assignA</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a></code> p => <code><a href="Control-Lens-Type.html#t:Iso">Iso</a></code> s t a b -> p s b -> p s t
<code><a href="Control-Lens-Setter.html#v:assignA">assignA</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a></code> p => <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> s t a b -> p s b -> p s t
<code><a href="Control-Lens-Setter.html#v:assignA">assignA</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a></code> p => <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> s t a b -> p s b -> p s t
<code><a href="Control-Lens-Setter.html#v:assignA">assignA</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a></code> p => <code><a href="Control-Lens-Setter.html#t:Setter">Setter</a></code> s t a b -> p s b -> p s t
</pre></div></div><h1 id="g:10">Exported for legible error messages</h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="file:///usr/share/doc/libghc-distributive-doc/html/Data-Distributive.html#t:Distributive">Distributive</a> f, <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> f) => <a name="t:Settable" class="def">Settable</a> f <a href="src/Control-Lens-Internal-Setter.html#Settable" class="link">Source</a></p><div class="doc"><p>Anything <code><a href="Control-Lens-Setter.html#t:Settable">Settable</a></code> must be isomorphic to the <code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a></code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Internal-Setter.html#v:untainted">untainted</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 clearfix"><span class="inst-left"><a href="Control-Lens-Setter.html#t:Settable">Settable</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span> <a href="src/Control-Lens-Internal-Setter.html#line-54" class="link">Source</a></td><td class="doc"><p>So you can pass our <code><a href="Control-Lens-Setter.html#v:Setter">Setter</a></code> into combinators from other lens libraries.</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Setter.html#t:Settable">Settable</a> f => <a href="Control-Lens-Setter.html#t:Settable">Settable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Control-Applicative-Backwards.html#t:Backwards">Backwards</a> f)</span> <a href="src/Control-Lens-Internal-Setter.html#line-63" class="link">Source</a></td><td class="doc"><p><code><a href="Control-Lens-Fold.html#v:backwards">backwards</a></code></p></td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Control-Lens-Setter.html#t:Settable">Settable</a> f, <a href="Control-Lens-Setter.html#t:Settable">Settable</a> g) => <a href="Control-Lens-Setter.html#t:Settable">Settable</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Compose.html#t:Compose">Compose</a> f g)</span> <a href="src/Control-Lens-Internal-Setter.html#line-67" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Identity" class="def">Identity</a> a :: * -> *</p><div class="doc"><p>Identity functor and monad. (a non-strict monad)</p><p><em>Since: 4.8.0.0</em></p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Identity" class="def">Identity</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runIdentity" class="def">runIdentity</a> :: a</dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Identity" class="caption collapser" onclick="toggleSection('i:Identity')">Instances</p><div id="section.i:Identity" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Foldable.html#t:Foldable">Foldable</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Generic1">Generic1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad-Zip.html#t:MonadZip">MonadZip</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Comonad">Comonad</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:ComonadApply">ComonadApply</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-distributive-doc/html/Data-Distributive.html#t:Distributive">Distributive</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Traversal.html#t:Traversable1">Traversable1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Apply.html#t:Apply">Apply</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Bind.html#t:Bind">Bind</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Functor-Extend.html#t:Extend">Extend</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-semigroupoids-doc/html/Data-Semigroup-Foldable-Class.html#t:Foldable1">Foldable1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Classes.html#t:Eq1">Eq1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Classes.html#t:Ord1">Ord1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Classes.html#t:Read1">Read1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/transformers-0.4.2.0/Data-Functor-Classes.html#t:Show1">Show1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Setter.html#t:Settable">Settable</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span> <a href="src/Control-Lens-Internal-Setter.html#line-54" class="link">Source</a></td><td class="doc"><p>So you can pass our <code><a href="Control-Lens-Setter.html#v:Setter">Setter</a></code> into combinators from other lens libraries.</p></td></tr><tr><td class="src clearfix"><span class="inst-left">Representable <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Sieve.html#t:Sieve">Sieve</a> (->) <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Sieve.html#t:Sieve">Sieve</a> <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Sieve.html#t:Cosieve">Cosieve</a> (->) <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Sieve.html#t:Cosieve">Cosieve</a> <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> () <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span> <a href="src/Control-Lens-Indexed.html#line-603" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> () <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span> <a href="src/Control-Lens-Indexed.html#line-599" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> () <a href="Control-Lens-Setter.html#t:Identity">Identity</a></span> <a href="src/Control-Lens-Indexed.html#line-595" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Data.html#t:Data">Data</a> a => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Data.html#t:Data">Data</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Read.html#t:Read">Read</a> a => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Read.html#t:Read">Read</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc"><p>This instance would be equivalent to the derived instances of the
<code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> newtype if the <code><a href="Control-Lens-Setter.html#v:runIdentity">runIdentity</a></code> field were removed</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> a => <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc"><p>This instance would be equivalent to the derived instances of the
<code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> newtype if the <code><a href="Control-Lens-Setter.html#v:runIdentity">runIdentity</a></code> field were removed</p></td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Generic">Generic</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Wrapped.html#t:Wrapped">Wrapped</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span> <a href="src/Control-Lens-Wrapped.html#line-320" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</span> <a href="src/Control-Lens-At.html#line-259" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left">(~) * t (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) => <a href="Control-Lens-Wrapped.html#t:Rewrapped">Rewrapped</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) t</span> <a href="src/Control-Lens-Wrapped.html#line-319" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Tuple.html#t:Field1">Field1</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) a b</span> <a href="src/Control-Lens-Tuple.html#line-97" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Control-Lens-Each.html#t:Each">Each</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) a b</span> <a href="src/Control-Lens-Each.html#line-161" class="link">Source</a></td><td class="doc"><pre><code><a href="Control-Lens-Each.html#v:each">each</a></code> :: <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> (<code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> a) (<code><a href="Control-Lens-Setter.html#t:Identity">Identity</a></code> b) a b</pre></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rep1">Rep1</a> <a href="Control-Lens-Setter.html#t:Identity">Identity</a> = <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:D1">D1</a> D1Identity (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:C1">C1</a> C1_0Identity (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:S1">S1</a> S1_0_0Identity <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Par1">Par1</a>))</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> Rep <a href="Control-Lens-Setter.html#t:Identity">Identity</a> = ()</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rep">Rep</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) = <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:D1">D1</a> D1Identity (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:C1">C1</a> C1_0Identity (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:S1">S1</a> S1_0_0Identity (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/GHC-Generics.html#t:Rec0">Rec0</a> a)))</span></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="Control-Lens-Wrapped.html#t:Unwrapped">Unwrapped</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) = a</span> <a href="src/Control-Lens-Wrapped.html#line-321" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="Control-Lens-At.html#t:IxValue">IxValue</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) = a</span> <a href="src/Control-Lens-At.html#line-258" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="keyword">type</span> <a href="Control-Lens-At.html#t:Index">Index</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a) = ()</span> <a href="src/Control-Lens-At.html#line-110" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:11">Deprecated</h1><div class="top"><p class="src"><a name="v:mapOf" class="def">mapOf</a> :: <a href="Control-Lens-Setter.html#t:ASetter">ASetter</a> s t a b -> (a -> b) -> s -> t <a href="src/Control-Lens-Setter.html#mapOf" class="link">Source</a></p><div class="doc"><div class="warning"><p>Deprecated: Use <code><a href="Control-Lens-Setter.html#v:over">over</a></code></p></div><p><code><a href="Control-Lens-Setter.html#v:mapOf">mapOf</a></code> is a deprecated alias for <code><a href="Control-Lens-Setter.html#v:over">over</a></code>.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>
|