This file is indexed.

/usr/share/doc/libghc-lens-doc/html/Control-Lens-Iso.html is in libghc-lens-doc 4.15.4-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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Lens.Iso</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Iso.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Iso.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-4.15.4: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(C) 2012-16 Edward Kmett</td></tr><tr><th>License</th><td>BSD-style (see the file LICENSE)</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>Rank2Types</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Lens.Iso</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Isomorphism Lenses</a></li><li><a href="#g:2">Isomorphism Construction</a></li><li><a href="#g:3">Consuming Isomorphisms</a></li><li><a href="#g:4">Working with isomorphisms</a><ul><li><a href="#g:5">Common Isomorphisms</a></li><li><a href="#g:6">Uncommon Isomorphisms</a></li><li><a href="#g:7">Contravariant functors</a></li></ul></li><li><a href="#g:8">Profunctors</a></li><li><a href="#g:9">Bifunctors</a></li><li><a href="#g:10">Coercions</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:Iso">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t)</li><li class="src short"><span class="keyword">type</span> <a href="#t:Iso-39-">Iso'</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a</li><li class="src short"><span class="keyword">type</span> <a href="#t:AnIso">AnIso</a> s t a b = <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> 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:AnIso-39-">AnIso'</a> s a = <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s s a a</li><li class="src short"><a href="#v:iso">iso</a> :: (s -&gt; a) -&gt; (b -&gt; t) -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:from">from</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> b a t s</li><li class="src short"><a href="#v:cloneIso">cloneIso</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li><li class="src short"><a href="#v:withIso">withIso</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((s -&gt; a) -&gt; (b -&gt; t) -&gt; r) -&gt; r</li><li class="src short"><a href="#v:au">au</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((b -&gt; t) -&gt; f s) -&gt; f a</li><li class="src short"><a href="#v:auf">auf</a> :: <a href="Control-Lens-Type.html#t:Optic">Optic</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f) g s t a b -&gt; (f a -&gt; g b) -&gt; f s -&gt; g t</li><li class="src short"><a href="#v:under">under</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (t -&gt; s) -&gt; b -&gt; a</li><li class="src short"><a href="#v:mapping">mapping</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s) (g t) (f a) (g b)</li><li class="src short"><a href="#v:simple">simple</a> :: <a href="Control-Lens-Type.html#t:Equality-39-">Equality'</a> a a</li><li class="src short"><a href="#v:non">non</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:non-39-">non'</a> :: <a href="Control-Lens-Prism.html#t:APrism-39-">APrism'</a> a () -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:anon">anon</a> :: a -&gt; (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a</li><li class="src short"><a href="#v:enum">enum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> a</li><li class="src short"><a href="#v:curried">curried</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> ((a, b) -&gt; c) ((d, e) -&gt; f) (a -&gt; b -&gt; c) (d -&gt; e -&gt; f)</li><li class="src short"><a href="#v:uncurried">uncurried</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) ((a, b) -&gt; c) ((d, e) -&gt; f)</li><li class="src short"><a href="#v:flipped">flipped</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (a' -&gt; b' -&gt; c') (b -&gt; a -&gt; c) (b' -&gt; a' -&gt; c')</li><li class="src short"><span class="keyword">class</span> <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> p =&gt; <a href="#t:Swapped">Swapped</a> p <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Swapped">Swapped</a> :: <span class="keyword">forall</span> c p d. <a href="Control-Lens-Iso.html#t:Swapped">Swapped</a> p =&gt; p d c -&gt; p c d</li><li class="src short"><span class="keyword">class</span> <a href="#t:Strict">Strict</a> lazy strict | lazy -&gt; strict, strict -&gt; lazy <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Strict">Strict</a> :: <span class="keyword">forall</span> t s. <a href="Control-Lens-Iso.html#t:Strict">Strict</a> s t =&gt; t -&gt; s</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Lazy">Lazy</a> :: <span class="keyword">forall</span> t s. <a href="Control-Lens-Iso.html#t:Strict">Strict</a> t s =&gt; t -&gt; s</li><li class="src short"><a href="#v:lazy">lazy</a> :: <a href="Control-Lens-Iso.html#t:Strict">Strict</a> lazy strict =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> strict lazy</li><li class="src short"><span class="keyword">class</span> <a href="#t:Reversing">Reversing</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:reversed">reversed</a> :: <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:Reversed">Reversed</a> :: <span class="keyword">forall</span> t. <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> t =&gt; t -&gt; t</li><li class="src short"><a href="#v:involuted">involuted</a> :: (a -&gt; a) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a</li><li class="src short"><span class="keyword">pattern</span> <a href="#v:List">List</a> :: <span class="keyword">forall</span> l. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-Exts.html#t:IsList">IsList</a> l =&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-Exts.html#t:Item">Item</a> l] -&gt; l</li><li class="src short"><a href="#v:magma">magma</a> :: <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal-Magma.html#t:Mafic">Mafic</a> a b) s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s u (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> t b a) (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> j u c c)</li><li class="src short"><a href="#v:imagma">imagma</a> :: <a href="Control-Lens-Type.html#t:Over">Over</a> (<a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i) (<a href="Control-Lens-Internal-Magma.html#t:Molten">Molten</a> i a b) s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t' (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a) (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> j t' c c)</li><li class="src short"><span class="keyword">data</span> <a href="#t:Magma">Magma</a> i t b a</li><li class="src short"><a href="#v:contramapping">contramapping</a> :: <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f a) (f b) (f s) (f t)</li><li class="src short"><span class="keyword">class</span> <a href="#t:Profunctor">Profunctor</a> p <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:dimapping">dimapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s' t' a' b' -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p a s') (q b t') (p s a') (q t b')</li><li class="src short"><a href="#v:lmapping">lmapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p a x) (q b y) (p s x) (q t y)</li><li class="src short"><a href="#v:rmapping">rmapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p x s) (q y t) (p x a) (q y b)</li><li class="src short"><a href="#v:bimapping">bimapping</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s' t' a' b' -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s s') (g t t') (f a a') (g b b')</li><li class="src short"><a href="#v:firsting">firsting</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s x) (g t y) (f a x) (g b y)</li><li class="src short"><a href="#v:seconding">seconding</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f x s) (g y t) (f x a) (g y b)</li><li class="src short"><a href="#v:coerced">coerced</a> :: <span class="keyword">forall</span> s t a b. (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> s a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> t b) =&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b</li></ul></div><div id="interface"><h1 id="g:1">Isomorphism Lenses</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Iso" class="def">Iso</a> s t a b = <span class="keyword">forall</span> p f. (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p a (f b) -&gt; p s (f t) <a href="src/Control-Lens-Type.html#Iso" class="link">Source</a> <a href="#t:Iso" class="selflink">#</a></p><div class="doc"><p>Isomorphism families can be composed with another <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> using (<code>.</code>) and <code>id</code>.</p><p>Since every <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> is both a valid <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> and a valid <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code>, the laws for those types
 imply the following laws for an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> <code>f</code>:</p><pre>f <code>.</code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code> f &#8801; <code>id</code>
<code><a href="Control-Lens-Iso.html#v:from">from</a></code> f <code>.</code> f &#8801; <code>id</code>
</pre><p>Note: Composition with an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> is index- and measure- preserving.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:Iso-39-" class="def">Iso'</a> s a = <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s s a a <a href="src/Control-Lens-Type.html#Iso%27" class="link">Source</a> <a href="#t:Iso-39-" class="selflink">#</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> = <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>
</pre></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:AnIso" class="def">AnIso</a> s t a b = <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> b) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b s (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> t) <a href="src/Control-Lens-Iso.html#AnIso" class="link">Source</a> <a href="#t:AnIso" class="selflink">#</a></p><div class="doc"><p>When you see this as an argument to a function, it expects an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:AnIso-39-" class="def">AnIso'</a> s a = <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s s a a <a href="src/Control-Lens-Iso.html#AnIso%27" class="link">Source</a> <a href="#t:AnIso-39-" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Control-Lens-Type.html#t:Simple">Simple</a></code> <code><a href="Control-Lens-Iso.html#t:AnIso">AnIso</a></code>.</p></div></div><h1 id="g:2">Isomorphism Construction</h1><div class="top"><p class="src"><a id="v:iso" class="def">iso</a> :: (s -&gt; a) -&gt; (b -&gt; t) -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b <a href="src/Control-Lens-Iso.html#iso" class="link">Source</a> <a href="#v:iso" class="selflink">#</a></p><div class="doc"><p>Build a simple isomorphism from a pair of inverse functions.</p><pre><code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g) &#8801; f
<code><a href="Control-Lens-Getter.html#v:view">view</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g)) &#8801; g
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g) h &#8801; g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> f
<code><a href="Control-Lens-Setter.html#v:over">over</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> f g)) h &#8801; f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> g
</pre></div></div><h1 id="g:3">Consuming Isomorphisms</h1><div class="top"><p class="src"><a id="v:from" class="def">from</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> b a t s <a href="src/Control-Lens-Iso.html#from" class="link">Source</a> <a href="#v:from" class="selflink">#</a></p><div class="doc"><p>Invert an isomorphism.</p><pre><code><a href="Control-Lens-Iso.html#v:from">from</a></code> (<code><a href="Control-Lens-Iso.html#v:from">from</a></code> l) &#8801; l
</pre></div></div><div class="top"><p class="src"><a id="v:cloneIso" class="def">cloneIso</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b <a href="src/Control-Lens-Iso.html#cloneIso" class="link">Source</a> <a href="#v:cloneIso" class="selflink">#</a></p><div class="doc"><p>Convert from <code><a href="Control-Lens-Iso.html#t:AnIso">AnIso</a></code> back to any <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>.</p><p>This is useful when you need to store an isomorphism as a data type inside a container
 and later reconstitute it as an overloaded function.</p><p>See <code><a href="Control-Lens-Lens.html#v:cloneLens">cloneLens</a></code> or <code><a href="Control-Lens-Traversal.html#v:cloneTraversal">cloneTraversal</a></code> for more information on why you might want to do this.</p></div></div><div class="top"><p class="src"><a id="v:withIso" class="def">withIso</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((s -&gt; a) -&gt; (b -&gt; t) -&gt; r) -&gt; r <a href="src/Control-Lens-Iso.html#withIso" class="link">Source</a> <a href="#v:withIso" class="selflink">#</a></p><div class="doc"><p>Extract the two functions, one from <code>s -&gt; a</code> and
 one from <code>b -&gt; t</code> that characterize an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>.</p></div></div><h1 id="g:4">Working with isomorphisms</h1><div class="top"><p class="src"><a id="v:au" class="def">au</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; ((b -&gt; t) -&gt; f s) -&gt; f a <a href="src/Control-Lens-Iso.html#au" class="link">Source</a> <a href="#v:au" class="selflink">#</a></p><div class="doc"><p>Based on <code><a href="Control-Lens-Wrapped.html#v:ala">ala</a></code> from Conor McBride's work on Epigram.</p><p>This version is generalized to accept any <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>, not just a <code>newtype</code>.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>au (_Wrapping Sum) foldMap [1,2,3,4]
</code></strong>10
</pre><p>You may want to think of this combinator as having the following, simpler type:</p><pre>au :: AnIso s t a b -&gt; ((b -&gt; t) -&gt; e -&gt; s) -&gt; e -&gt; a
</pre></div></div><div class="top"><p class="src"><a id="v:auf" class="def">auf</a> :: <a href="Control-Lens-Type.html#t:Optic">Optic</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f) g s t a b -&gt; (f a -&gt; g b) -&gt; f s -&gt; g t <a href="src/Control-Lens-Iso.html#auf" class="link">Source</a> <a href="#v:auf" class="selflink">#</a></p><div class="doc"><p>Based on <code>ala'</code> from Conor McBride's work on Epigram.</p><p>This version is generalized to accept any <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>, not just a <code>newtype</code>.</p><p>For a version you pass the name of the <code>newtype</code> constructor to, see <code><a href="Control-Lens-Wrapped.html#v:alaf">alaf</a></code>.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>auf (_Unwrapping Sum) (foldMapOf both) Prelude.length (&quot;hello&quot;,&quot;world&quot;)
</code></strong>10
</pre><p>Mnemonically, the German <em>auf</em> plays a similar role to <em>&#224; la</em>, and the combinator
 is <code><a href="Control-Lens-Iso.html#v:au">au</a></code> with an extra function argument:</p><pre><code><a href="Control-Lens-Iso.html#v:auf">auf</a></code> :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; ((r -&gt;  a) -&gt; e -&gt; b) -&gt; (r -&gt; s) -&gt; e -&gt; t
</pre><p>but the signature is general.</p></div></div><div class="top"><p class="src"><a id="v:under" class="def">under</a> :: <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; (t -&gt; s) -&gt; b -&gt; a <a href="src/Control-Lens-Iso.html#under" class="link">Source</a> <a href="#v:under" class="selflink">#</a></p><div class="doc"><p>The opposite of working <code><a href="Control-Lens-Setter.html#v:over">over</a></code> a <code><a href="Control-Lens-Type.html#t:Setter">Setter</a></code> is working <code><a href="Control-Lens-Iso.html#v:under">under</a></code> an isomorphism.</p><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> &#8801; <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.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:from">from</a></code>
</pre><pre><code><a href="Control-Lens-Iso.html#v:under">under</a></code> :: <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; (t -&gt; s) -&gt; b -&gt; a
</pre></div></div><div class="top"><p class="src"><a id="v:mapping" class="def">mapping</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s) (g t) (f a) (g b) <a href="src/Control-Lens-Iso.html#mapping" class="link">Source</a> <a href="#v:mapping" class="selflink">#</a></p><div class="doc"><p>This can be used to lift any <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> into an arbitrary <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a></code>.</p></div></div><h2 id="g:5">Common Isomorphisms</h2><div class="top"><p class="src"><a id="v:simple" class="def">simple</a> :: <a href="Control-Lens-Type.html#t:Equality-39-">Equality'</a> a a <a href="src/Control-Lens-Equality.html#simple" class="link">Source</a> <a href="#v:simple" class="selflink">#</a></p><div class="doc"><p>Composition with this isomorphism is occasionally useful when your <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code>,
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> or <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> has a constraint on an unused
 argument to force that argument to agree with the
 type of a used argument and avoid <code>ScopedTypeVariables</code> or other ugliness.</p></div></div><div class="top"><p class="src"><a id="v:non" class="def">non</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a <a href="src/Control-Lens-Iso.html#non" class="link">Source</a> <a href="#v:non" class="selflink">#</a></p><div class="doc"><p>If <code>v</code> is an element of a type <code>a</code>, and <code>a'</code> is <code>a</code> sans the element <code>v</code>, then <code><code><a href="Control-Lens-Iso.html#v:non">non</a></code> v</code> is an isomorphism from
 <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a></code> a'</code> to <code>a</code>.</p><pre><code><a href="Control-Lens-Iso.html#v:non">non</a></code> &#8801; <code><a href="Control-Lens-Iso.html#v:non-39-">non'</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Prism.html#v:only">only</a></code>
</pre><p>Keep in mind this is only a real isomorphism if you treat the domain as being <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a></code> (a sans v)</code>.</p><p>This is practically quite useful when you want to have a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Map.html#v:Map">Map</a></code> where all the entries should have non-zero values.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] &amp; at &quot;hello&quot; . non 0 +~ 2
</code></strong>fromList [(&quot;hello&quot;,3)]
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] &amp; at &quot;hello&quot; . non 0 -~ 1
</code></strong>fromList []
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [(&quot;hello&quot;,1)] ^. at &quot;hello&quot; . non 0
</code></strong>1
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.fromList [] ^. at &quot;hello&quot; . non 0
</code></strong>0
</pre><p>This combinator is also particularly useful when working with nested maps.</p><p><em>e.g.</em> When you want to create the nested <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Map.html#v:Map">Map</a></code> when it is missing:</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.empty &amp; at &quot;hello&quot; . non Map.empty . at &quot;world&quot; ?~ &quot;!!!&quot;
</code></strong>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])]
</pre><p>and when have deleting the last entry from the nested <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Map.html#v:Map">Map</a></code> mean that we
 should delete its entry from the surrounding one:</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])] &amp; at &quot;hello&quot; . non Map.empty . at &quot;world&quot; .~ Nothing
</code></strong>fromList []
</pre><p>It can also be used in reverse to exclude a given value:</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>non 0 # rem 10 4
</code></strong>Just 2
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>non 0 # rem 10 5
</code></strong>Nothing
</pre></div></div><div class="top"><p class="src"><a id="v:non-39-" class="def">non'</a> :: <a href="Control-Lens-Prism.html#t:APrism-39-">APrism'</a> a () -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a <a href="src/Control-Lens-Iso.html#non%27" class="link">Source</a> <a href="#v:non-39-" class="selflink">#</a></p><div class="doc"><p><code><code><a href="Control-Lens-Iso.html#v:non-39-">non'</a></code> p</code> generalizes <code><code><a href="Control-Lens-Iso.html#v:non">non</a></code> (p # ())</code> to take any unit <code><a href="Control-Lens-Type.html#t:Prism">Prism</a></code></p><p>This function generates an isomorphism between <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a></code> (a | <code><a href="Control-Lens-Prism.html#v:isn-39-t">isn't</a></code> p a)</code> and <code>a</code>.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.singleton &quot;hello&quot; Map.empty &amp; at &quot;hello&quot; . non' _Empty . at &quot;world&quot; ?~ &quot;!!!&quot;
</code></strong>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])]
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])] &amp; at &quot;hello&quot; . non' _Empty . at &quot;world&quot; .~ Nothing
</code></strong>fromList []
</pre></div></div><div class="top"><p class="src"><a id="v:anon" class="def">anon</a> :: a -&gt; (a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) a <a href="src/Control-Lens-Iso.html#anon" class="link">Source</a> <a href="#v:anon" class="selflink">#</a></p><div class="doc"><p><code><code><a href="Control-Lens-Iso.html#v:anon">anon</a></code> a p</code> generalizes <code><code><a href="Control-Lens-Iso.html#v:non">non</a></code> a</code> to take any value and a predicate.</p><p>This function assumes that <code>p a</code> holds <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#v:True">True</a></code></code> and generates an isomorphism between <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a></code> (a | <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#v:not">not</a></code> (p a))</code> and <code>a</code>.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>Map.empty &amp; at &quot;hello&quot; . anon Map.empty Map.null . at &quot;world&quot; ?~ &quot;!!!&quot;
</code></strong>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])]
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>fromList [(&quot;hello&quot;,fromList [(&quot;world&quot;,&quot;!!!&quot;)])] &amp; at &quot;hello&quot; . anon Map.empty Map.null . at &quot;world&quot; .~ Nothing
</code></strong>fromList []
</pre></div></div><div class="top"><p class="src"><a id="v:enum" class="def">enum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> a <a href="src/Control-Lens-Iso.html#enum" class="link">Source</a> <a href="#v:enum" class="selflink">#</a></p><div class="doc"><p>This isomorphism can be used to convert to or from an instance of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a></code>.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>LT^.from enum
</code></strong>0
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>97^.enum :: Char
</code></strong>'a'
</pre><p>Note: this is only an isomorphism from the numeric range actually used
 and it is a bit of a pleasant fiction, since there are questionable
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a></code> instances for <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Double">Double</a></code>, and <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Float">Float</a></code> that exist solely for
 <code>[1.0 .. 4.0]</code> sugar and the instances for those and <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Integer">Integer</a></code> don't
 cover all values in their range.</p></div></div><div class="top"><p class="src"><a id="v:curried" class="def">curried</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> ((a, b) -&gt; c) ((d, e) -&gt; f) (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) <a href="src/Control-Lens-Iso.html#curried" class="link">Source</a> <a href="#v:curried" class="selflink">#</a></p><div class="doc"><p>The canonical isomorphism for currying and uncurrying a function.</p><pre><code><a href="Control-Lens-Iso.html#v:curried">curried</a></code> = <code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Tuple.html#v:curry">curry</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Tuple.html#v:uncurry">uncurry</a></code>
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(fst^.curried) 3 4
</code></strong>3
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>view curried fst 3 4
</code></strong>3
</pre></div></div><div class="top"><p class="src"><a id="v:uncurried" class="def">uncurried</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (d -&gt; e -&gt; f) ((a, b) -&gt; c) ((d, e) -&gt; f) <a href="src/Control-Lens-Iso.html#uncurried" class="link">Source</a> <a href="#v:uncurried" class="selflink">#</a></p><div class="doc"><p>The canonical isomorphism for uncurrying and currying a function.</p><pre><code><a href="Control-Lens-Iso.html#v:uncurried">uncurried</a></code> = <code><a href="Control-Lens-Iso.html#v:iso">iso</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Tuple.html#v:uncurry">uncurry</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Tuple.html#v:curry">curry</a></code>
</pre><pre><code><a href="Control-Lens-Iso.html#v:uncurried">uncurried</a></code> = <code><a href="Control-Lens-Iso.html#v:from">from</a></code> <code><a href="Control-Lens-Iso.html#v:curried">curried</a></code>
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>((+)^.uncurried) (1,2)
</code></strong>3
</pre></div></div><div class="top"><p class="src"><a id="v:flipped" class="def">flipped</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (a -&gt; b -&gt; c) (a' -&gt; b' -&gt; c') (b -&gt; a -&gt; c) (b' -&gt; a' -&gt; c') <a href="src/Control-Lens-Iso.html#flipped" class="link">Source</a> <a href="#v:flipped" class="selflink">#</a></p><div class="doc"><p>The isomorphism for flipping a function.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>((,)^.flipped) 1 2
</code></strong>(2,1)
</pre></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> p =&gt; <a id="t:Swapped" class="def">Swapped</a> p <span class="keyword">where</span> <a href="src/Control-Lens-Iso.html#Swapped" class="link">Source</a> <a href="#t:Swapped" class="selflink">#</a></p><div class="doc"><p>This class provides for symmetric bifunctors.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Iso.html#v:swapped">swapped</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:swapped" class="def">swapped</a> :: <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p a b) (p c d) (p b a) (p d c) <a href="src/Control-Lens-Iso.html#swapped" class="link">Source</a> <a href="#v:swapped" class="selflink">#</a></p><div class="doc"><pre><code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:id">id</a></code>
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bifunctor.html#v:first">first</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> = <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bifunctor.html#v:second">second</a></code> f
<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bifunctor.html#v:second">second</a></code> g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> = <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bifunctor.html#v:first">first</a></code> g
<code><a href="Control-Lens-Review.html#v:bimap">bimap</a></code> f g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> = <code><a href="Control-Lens-Iso.html#v:swapped">swapped</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Function.html#v:.">.</a></code> <code><a href="Control-Lens-Review.html#v:bimap">bimap</a></code> g f
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>(1,2)^.swapped
</code></strong>(2,1)
</pre></div></div><div class="subs instances"><p id="control.i:Swapped" class="caption collapser" onclick="toggleSection('i:Swapped')">Instances</p><div id="section.i:Swapped" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Swapped:Swapped:1" class="instance expander" onclick="toggleSection('i:ic:Swapped:Swapped:1')"></span> <a href="Control-Lens-Iso.html#t:Swapped">Swapped</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a></span> <a href="src/Control-Lens-Iso.html#line-408" class="link">Source</a> <a href="#t:Swapped" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Swapped:Swapped:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:swapped">swapped</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> b a) (f (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> d c)) -&gt; p (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> a b) (f (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> c d)) <a href="src/Control-Lens-Iso.html#swapped" class="link">Source</a> <a href="#v:swapped" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Swapped:Swapped:2" class="instance expander" onclick="toggleSection('i:ic:Swapped:Swapped:2')"></span> <a href="Control-Lens-Iso.html#t:Swapped">Swapped</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.5.0.0/GHC-Tuple.html#t:-40--44--41-">(,)</a></span> <a href="src/Control-Lens-Iso.html#line-405" class="link">Source</a> <a href="#t:Swapped" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Swapped:Swapped:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:swapped">swapped</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f) =&gt; p (b, a) (f (d, c)) -&gt; p (a, b) (f (c, d)) <a href="src/Control-Lens-Iso.html#swapped" class="link">Source</a> <a href="#v:swapped" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Swapped" class="def">Swapped</a> :: <span class="keyword">forall</span> c p d. <a href="Control-Lens-Iso.html#t:Swapped">Swapped</a> p =&gt; p d c -&gt; p c d <a href="src/Control-Lens-Iso.html#Swapped" class="link">Source</a> <a href="#v:Swapped" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Strict" class="def">Strict</a> lazy strict | lazy -&gt; strict, strict -&gt; lazy <span class="keyword">where</span> <a href="src/Control-Lens-Iso.html#Strict" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></p><div class="doc"><p>Ad hoc conversion between &quot;strict&quot; and &quot;lazy&quot; versions of a structure,
 such as <code><a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></code> or <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Iso.html#v:strict">strict</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:strict" class="def">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> lazy strict <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:Strict" class="caption collapser" onclick="toggleSection('i:Strict')">Instances</p><div id="section.i:Strict" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Strict:Strict:1" class="instance expander" onclick="toggleSection('i:ic:Strict:Strict:1')"></span> <a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></span> <a href="src/Control-Lens-Iso.html#line-430" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Strict:Strict:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Strict:Strict:2" class="instance expander" onclick="toggleSection('i:ic:Strict:Strict:2')"></span> <a href="Control-Lens-Iso.html#t:Strict">Strict</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></span> <a href="src/Control-Lens-Iso.html#line-438" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Strict:Strict:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a> <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Strict:Strict:3" class="instance expander" onclick="toggleSection('i:ic:Strict:Strict:3')"></span> <a href="Control-Lens-Iso.html#t:Strict">Strict</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a)</span> <a href="src/Control-Lens-Iso.html#line-442" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Strict:Strict:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Lazy.html#t:StateT">StateT</a> s m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Strict.html#t:StateT">StateT</a> s m a) <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Strict:Strict:4" class="instance expander" onclick="toggleSection('i:ic:Strict:Strict:4')"></span> <a href="Control-Lens-Iso.html#t:Strict">Strict</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a)</span> <a href="src/Control-Lens-Iso.html#line-446" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Strict:Strict:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Lazy.html#t:WriterT">WriterT</a> w m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Strict.html#t:WriterT">WriterT</a> w m a) <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Strict:Strict:5" class="instance expander" onclick="toggleSection('i:ic:Strict:Strict:5')"></span> <a href="Control-Lens-Iso.html#t:Strict">Strict</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a)</span> <a href="src/Control-Lens-Iso.html#line-450" class="link">Source</a> <a href="#t:Strict" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Strict:Strict:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:strict">strict</a> :: <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Lazy.html#t:RWST">RWST</a> r w s m a) (<a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-RWS-Strict.html#t:RWST">RWST</a> r w s m a) <a href="src/Control-Lens-Iso.html#strict" class="link">Source</a> <a href="#v:strict" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Strict" class="def">Strict</a> :: <span class="keyword">forall</span> t s. <a href="Control-Lens-Iso.html#t:Strict">Strict</a> s t =&gt; t -&gt; s <a href="src/Control-Lens-Iso.html#Strict" class="link">Source</a> <a href="#v:Strict" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Lazy" class="def">Lazy</a> :: <span class="keyword">forall</span> t s. <a href="Control-Lens-Iso.html#t:Strict">Strict</a> t s =&gt; t -&gt; s <a href="src/Control-Lens-Iso.html#Lazy" class="link">Source</a> <a href="#v:Lazy" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lazy" class="def">lazy</a> :: <a href="Control-Lens-Iso.html#t:Strict">Strict</a> lazy strict =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> strict lazy <a href="src/Control-Lens-Iso.html#lazy" class="link">Source</a> <a href="#v:lazy" class="selflink">#</a></p><div class="doc"><p>An <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> between the strict variant of a structure and its lazy
 counterpart.</p><pre><code><a href="Control-Lens-Iso.html#v:lazy">lazy</a></code> = <code><a href="Control-Lens-Iso.html#v:from">from</a></code> <code><a href="Control-Lens-Iso.html#v:strict">strict</a></code>
</pre><p>See <a href="http://hackage.haskell.org/package/strict-base-types">http://hackage.haskell.org/package/strict-base-types</a> for an example
 use.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Reversing" class="def">Reversing</a> t <span class="keyword">where</span> <a href="src/Control-Lens-Internal-Iso.html#Reversing" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></p><div class="doc"><p>This class provides a generalized notion of list reversal extended to other containers.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Iso.html#v:reversing">reversing</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:reversing" class="def">reversing</a> :: t -&gt; t <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:Reversing" class="caption collapser" onclick="toggleSection('i:Reversing')">Instances</p><div id="section.i:Reversing" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:1" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:1')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></span> <a href="src/Control-Lens-Internal-Iso.html#line-79" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:2" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:2')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></span> <a href="src/Control-Lens-Internal-Iso.html#line-76" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:3" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:3')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a></span> <a href="src/Control-Lens-Internal-Iso.html#line-85" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:4" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:4')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></span> <a href="src/Control-Lens-Internal-Iso.html#line-82" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a> <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:5" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:5')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> [a]</span> <a href="src/Control-Lens-Internal-Iso.html#line-70" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: [a] -&gt; [a] <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:6" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:6')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-73" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-List-NonEmpty.html#t:NonEmpty">NonEmpty</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:7" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:7')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Sequence.html#t:Seq">Seq</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-91" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Sequence.html#t:Seq">Seq</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/containers-0.5.7.1/Data-Sequence.html#t:Seq">Seq</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:8" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:8')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector.html#t:Vector">Vector</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-88" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector.html#t:Vector">Vector</a> a -&gt; <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector.html#t:Vector">Vector</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:9" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:9')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Storable.html#t:Vector">Vector</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-100" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Storable.html#t:Vector">Vector</a> a -&gt; <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Storable.html#t:Vector">Vector</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:10" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:10')"></span> <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Unboxed-Mutable.html#t:Unbox">Unbox</a> a =&gt; <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Unboxed.html#t:Vector">Vector</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-97" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Unboxed.html#t:Vector">Vector</a> a -&gt; <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Unboxed.html#t:Vector">Vector</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:11" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:11')"></span> <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Primitive-Mutable.html#t:Prim">Prim</a> a =&gt; <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Primitive.html#t:Vector">Vector</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-94" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Primitive.html#t:Vector">Vector</a> a -&gt; <a href="file:///usr/share/doc/libghc-vector-doc/html/Data-Vector-Primitive.html#t:Vector">Vector</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Reversing:Reversing:12" class="instance expander" onclick="toggleSection('i:ic:Reversing:Reversing:12')"></span> <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> (<a href="Control-Lens-Internal-Deque.html#t:Deque">Deque</a> a)</span> <a href="src/Control-Lens-Internal-Iso.html#line-135" class="link">Source</a> <a href="#t:Reversing" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Reversing:Reversing:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:reversing">reversing</a> :: <a href="Control-Lens-Internal-Deque.html#t:Deque">Deque</a> a -&gt; <a href="Control-Lens-Internal-Deque.html#t:Deque">Deque</a> a <a href="src/Control-Lens-Internal-Iso.html#reversing" class="link">Source</a> <a href="#v:reversing" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:reversed" class="def">reversed</a> :: <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> a =&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a <a href="src/Control-Lens-Iso.html#reversed" class="link">Source</a> <a href="#v:reversed" class="selflink">#</a></p><div class="doc"><p>An <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> between a list, <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a></code>, <code><a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text.html#t:Text">Text</a></code> fragment, etc. and its reversal.</p><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;live&quot; ^. reversed
</code></strong>&quot;evil&quot;
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;live&quot; &amp; reversed %~ ('d':)
</code></strong>&quot;lived&quot;
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:Reversed" class="def">Reversed</a> :: <span class="keyword">forall</span> t. <a href="Control-Lens-Iso.html#t:Reversing">Reversing</a> t =&gt; t -&gt; t <a href="src/Control-Lens-Iso.html#Reversed" class="link">Source</a> <a href="#v:Reversed" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:involuted" class="def">involuted</a> :: (a -&gt; a) -&gt; <a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a> a a <a href="src/Control-Lens-Iso.html#involuted" class="link">Source</a> <a href="#v:involuted" class="selflink">#</a></p><div class="doc"><p>Given a function that is its own inverse, this gives you an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> using it in both directions.</p><pre><code><a href="Control-Lens-Iso.html#v:involuted">involuted</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:join">join</a></code> <code><a href="Control-Lens-Iso.html#v:iso">iso</a></code>
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;live&quot; ^. involuted reverse
</code></strong>&quot;evil&quot;
</pre><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong class="userinput"><code>&quot;live&quot; &amp; involuted reverse %~ ('d':)
</code></strong>&quot;lived&quot;
</pre></div></div><div class="top"><p class="src"><span class="keyword">pattern</span> <a id="v:List" class="def">List</a> :: <span class="keyword">forall</span> l. <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-Exts.html#t:IsList">IsList</a> l =&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/GHC-Exts.html#t:Item">Item</a> l] -&gt; l <a href="src/Control-Lens-Iso.html#List" class="link">Source</a> <a href="#v:List" class="selflink">#</a></p></div><h2 id="g:6">Uncommon Isomorphisms</h2><div class="top"><p class="src"><a id="v:magma" class="def">magma</a> :: <a href="Control-Lens-Type.html#t:LensLike">LensLike</a> (<a href="Control-Lens-Internal-Magma.html#t:Mafic">Mafic</a> a b) s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s u (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> t b a) (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> j u c c) <a href="src/Control-Lens-Iso.html#magma" class="link">Source</a> <a href="#v:magma" class="selflink">#</a></p><div class="doc"><p>This isomorphism can be used to inspect a <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> to see how it associates
 the structure and it can also be used to bake the <code><a href="Control-Lens-Type.html#t:Traversal">Traversal</a></code> into a <code><a href="Control-Lens-Iso.html#t:Magma">Magma</a></code> so
 that you can traverse over it multiple times.</p></div></div><div class="top"><p class="src"><a id="v:imagma" class="def">imagma</a> :: <a href="Control-Lens-Type.html#t:Over">Over</a> (<a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i) (<a href="Control-Lens-Internal-Magma.html#t:Molten">Molten</a> i a b) s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t' (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a) (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> j t' c c) <a href="src/Control-Lens-Iso.html#imagma" class="link">Source</a> <a href="#v:imagma" class="selflink">#</a></p><div class="doc"><p>This isomorphism can be used to inspect an <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> to see how it associates
 the structure and it can also be used to bake the <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code> into a <code><a href="Control-Lens-Iso.html#t:Magma">Magma</a></code> so
 that you can traverse over it multiple times with access to the original indices.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Magma" class="def">Magma</a> i t b a <a href="src/Control-Lens-Internal-Magma.html#Magma" class="link">Source</a> <a href="#t:Magma" class="selflink">#</a></p><div class="doc"><p>This provides a way to peek at the internal structure of a
 <code><a href="Control-Lens-Traversal.html#v:Traversal">Traversal</a></code> or <code><a href="Control-Lens-Traversal.html#v:IndexedTraversal">IndexedTraversal</a></code></p></div><div class="subs instances"><p id="control.i:Magma" class="caption collapser" onclick="toggleSection('i:Magma')">Instances</p><div id="section.i:Magma" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:TraversableWithIndex:1" class="instance expander" onclick="toggleSection('i:id:Magma:TraversableWithIndex:1')"></span> <a href="Control-Lens-Indexed.html#t:TraversableWithIndex">TraversableWithIndex</a> i (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Indexed.html#line-778" class="link">Source</a> <a href="#t:TraversableWithIndex" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:TraversableWithIndex:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:itraverse">itraverse</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (i -&gt; a -&gt; f b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b) <a href="src/Control-Lens-Indexed.html#itraverse" class="link">Source</a> <a href="#v:itraverse" class="selflink">#</a></p><p class="src"><a href="#v:itraversed">itraversed</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b) <a href="src/Control-Lens-Indexed.html#itraversed" class="link">Source</a> <a href="#v:itraversed" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:FoldableWithIndex:2" class="instance expander" onclick="toggleSection('i:id:Magma:FoldableWithIndex:2')"></span> <a href="Control-Lens-Indexed.html#t:FoldableWithIndex">FoldableWithIndex</a> i (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Indexed.html#line-771" class="link">Source</a> <a href="#t:FoldableWithIndex" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:FoldableWithIndex:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ifoldMap">ifoldMap</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; (i -&gt; a -&gt; m) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; m <a href="src/Control-Lens-Indexed.html#ifoldMap" class="link">Source</a> <a href="#v:ifoldMap" class="selflink">#</a></p><p class="src"><a href="#v:ifolded">ifolded</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f) =&gt; p a (f a) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a) <a href="src/Control-Lens-Indexed.html#ifolded" class="link">Source</a> <a href="#v:ifolded" class="selflink">#</a></p><p class="src"><a href="#v:ifoldr">ifoldr</a> :: (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="src/Control-Lens-Indexed.html#ifoldr" class="link">Source</a> <a href="#v:ifoldr" class="selflink">#</a></p><p class="src"><a href="#v:ifoldl">ifoldl</a> :: (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="src/Control-Lens-Indexed.html#ifoldl" class="link">Source</a> <a href="#v:ifoldl" class="selflink">#</a></p><p class="src"><a href="#v:ifoldr-39-">ifoldr'</a> :: (i -&gt; a -&gt; b -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="src/Control-Lens-Indexed.html#ifoldr%27" class="link">Source</a> <a href="#v:ifoldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:ifoldl-39-">ifoldl'</a> :: (i -&gt; b -&gt; a -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="src/Control-Lens-Indexed.html#ifoldl%27" class="link">Source</a> <a href="#v:ifoldl-39-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:FunctorWithIndex:3" class="instance expander" onclick="toggleSection('i:id:Magma:FunctorWithIndex:3')"></span> <a href="Control-Lens-Indexed.html#t:FunctorWithIndex">FunctorWithIndex</a> i (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Indexed.html#line-764" class="link">Source</a> <a href="#t:FunctorWithIndex" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:FunctorWithIndex:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:imap">imap</a> :: (i -&gt; a -&gt; b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b <a href="src/Control-Lens-Indexed.html#imap" class="link">Source</a> <a href="#v:imap" class="selflink">#</a></p><p class="src"><a href="#v:imapped">imapped</a> :: (<a href="Control-Lens-Internal-Indexed.html#t:Indexable">Indexable</a> i p, <a href="Control-Lens-Internal-Setter.html#t:Settable">Settable</a> f) =&gt; p a (f b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b) <a href="src/Control-Lens-Indexed.html#imapped" class="link">Source</a> <a href="#v:imapped" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:Functor:4" class="instance expander" onclick="toggleSection('i:id:Magma:Functor:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Internal-Magma.html#line-71" class="link">Source</a> <a href="#t:Magma" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:Functor:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:Foldable:5" class="instance expander" onclick="toggleSection('i:id:Magma:Foldable:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Foldable.html#t:Foldable">Foldable</a> (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Internal-Magma.html#line-77" class="link">Source</a> <a href="#t:Magma" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:Foldable:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fold">fold</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b m -&gt; m <a href="#v:fold" class="selflink">#</a></p><p class="src"><a href="#v:foldMap">foldMap</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; (a -&gt; m) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; m <a href="#v:foldMap" class="selflink">#</a></p><p class="src"><a href="#v:foldr">foldr</a> :: (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="#v:foldr" class="selflink">#</a></p><p class="src"><a href="#v:foldr-39-">foldr'</a> :: (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="#v:foldr-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldl">foldl</a> :: (b -&gt; a -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="#v:foldl" class="selflink">#</a></p><p class="src"><a href="#v:foldl-39-">foldl'</a> :: (b -&gt; a -&gt; b) -&gt; b -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; b <a href="#v:foldl-39-" class="selflink">#</a></p><p class="src"><a href="#v:foldr1">foldr1</a> :: (a -&gt; a -&gt; a) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:foldr1" class="selflink">#</a></p><p class="src"><a href="#v:foldl1">foldl1</a> :: (a -&gt; a -&gt; a) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:foldl1" class="selflink">#</a></p><p class="src"><a href="#v:toList">toList</a> :: <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; [a] <a href="#v:toList" class="selflink">#</a></p><p class="src"><a href="#v:null">null</a> :: <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:null" class="selflink">#</a></p><p class="src"><a href="#v:length">length</a> :: <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> <a href="#v:length" class="selflink">#</a></p><p class="src"><a href="#v:elem">elem</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; a -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:elem" class="selflink">#</a></p><p class="src"><a href="#v:maximum">maximum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:maximum" class="selflink">#</a></p><p class="src"><a href="#v:minimum">minimum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:minimum" class="selflink">#</a></p><p class="src"><a href="#v:sum">sum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:sum" class="selflink">#</a></p><p class="src"><a href="#v:product">product</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Num">Num</a> a =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; a <a href="#v:product" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:Traversable:6" class="instance expander" onclick="toggleSection('i:id:Magma:Traversable:6')"></span> <a href="Control-Lens-Traversal.html#t:Traversable">Traversable</a> (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b)</span> <a href="src/Control-Lens-Internal-Magma.html#line-83" class="link">Source</a> <a href="#t:Magma" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:Traversable:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:traverse">traverse</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; (a -&gt; f b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b) <a href="#v:traverse" class="selflink">#</a></p><p class="src"><a href="#v:sequenceA">sequenceA</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b (f a) -&gt; f (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a) <a href="#v:sequenceA" class="selflink">#</a></p><p class="src"><a href="#v:mapM">mapM</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m b) -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; m (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b b) <a href="#v:mapM" class="selflink">#</a></p><p class="src"><a href="#v:sequence">sequence</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b (m a) -&gt; m (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a) <a href="#v:sequence" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Magma:Show:7" class="instance expander" onclick="toggleSection('i:id:Magma:Show:7')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> i, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> a) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> (<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a)</span> <a href="src/Control-Lens-Internal-Magma.html#line-89" class="link">Source</a> <a href="#t:Magma" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Magma:Show:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Control-Lens-Iso.html#t:Magma">Magma</a> i t b a] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h2 id="g:7">Contravariant functors</h2><div class="top"><p class="src"><a id="v:contramapping" class="def">contramapping</a> :: <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f a) (f b) (f s) (f t) <a href="src/Control-Lens-Iso.html#contramapping" class="link">Source</a> <a href="#v:contramapping" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> into a <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> functor.</p><pre>contramapping :: <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> f =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (f a) (f b) (f s) (f t)
contramapping :: <code><a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a></code> f =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (f a) (f s)
</pre></div></div><h1 id="g:8">Profunctors</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Profunctor" class="def">Profunctor</a> p <span class="keyword">where</span> <a href="#t:Profunctor" class="selflink">#</a></p><div class="doc"><p>Formally, the class <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> represents a profunctor
 from <code>Hask</code> -&gt; <code>Hask</code>.</p><p>Intuitively it is a bifunctor where the first argument is contravariant
 and the second argument is covariant.</p><p>You can define a <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> by either defining <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> or by defining both
 <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> and <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code>.</p><p>If you supply <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code>, you should ensure that:</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code></pre><p>If you supply <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> and <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code>, ensure:</p><pre><code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code>
<code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code>
</pre><p>If you supply both, you should also ensure:</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g</pre><p>These ensure by parametricity:</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> g) (h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> i) &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> g h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f i
<code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> g) &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f
<code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> g) &#8801; <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g
</pre></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Control-Lens-Iso.html#v:dimap">dimap</a> | <a href="Control-Lens-Iso.html#v:lmap">lmap</a>, <a href="Control-Lens-Iso.html#v:rmap">rmap</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:dimap" class="def">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; p b c -&gt; p a d <a href="#v:dimap" class="selflink">#</a></p><div class="doc"><p>Map over both arguments at the same time.</p><pre><code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:.">.</a></code> <code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> g</pre></div><p class="src"><a id="v:lmap" class="def">lmap</a> :: (a -&gt; b) -&gt; p b c -&gt; p a c <a href="#v:lmap" class="selflink">#</a></p><div class="doc"><p>Map the first argument contravariantly.</p><pre><code><a href="Control-Lens-Iso.html#v:lmap">lmap</a></code> f &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code></pre></div><p class="src"><a id="v:rmap" class="def">rmap</a> :: (b -&gt; c) -&gt; p a b -&gt; p a c <a href="#v:rmap" class="selflink">#</a></p><div class="doc"><p>Map the second argument covariantly.</p><pre><code><a href="Control-Lens-Iso.html#v:rmap">rmap</a></code> &#8801; <code><a href="Control-Lens-Iso.html#v:dimap">dimap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Category.html#v:id">id</a></code></pre></div></div><div class="subs instances"><p id="control.i:Profunctor" class="caption collapser" onclick="toggleSection('i:Profunctor')">Instances</p><div id="section.i:Profunctor" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:1" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:1')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (-&gt;)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; (b -&gt; c) -&gt; a -&gt; d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; (b -&gt; c) -&gt; a -&gt; c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:2" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:2')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a></span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedFold">ReifiedFold</a> a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:3" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:3')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a></span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedGetter">ReifiedGetter</a> a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:4" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m b c -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m b c -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a b -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:5" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> w =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w b c -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w b c -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a b -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a b -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:6" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:6')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Closure">Closure</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:7" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:7')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Closed.html#t:Environment">Environment</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:8" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:8')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:TambaraSum">TambaraSum</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:9" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:9')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:PastroSum">PastroSum</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:10" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:10')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CotambaraSum">CotambaraSum</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:11" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:11')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Choice.html#t:CopastroSum">CopastroSum</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:12" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:12')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Tambara">Tambara</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:13" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:13')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Pastro">Pastro</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:14" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:14')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Cotambara">Cotambara</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:15" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:15')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Strong.html#t:Copastro">Copastro</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:16" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:16')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Star">Star</a> f a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:17" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:17')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Costar">Costar</a> f a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:18" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:18')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Arrow.html#t:Arrow">Arrow</a> p =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:WrappedArrow">WrappedArrow</a> p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:19" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:19')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:19" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Types.html#t:Forget">Forget</a> r a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:20" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:20')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a>)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:20" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b c -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b c -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a b -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a b -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:21" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:21')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i)</span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:21" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i b c -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i b c -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a b -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a b -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Indexed.html#t:Indexed">Indexed</a> i a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:22" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:22')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i)</span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:22" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedFold">ReifiedIndexedFold</a> i a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:23" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:23')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i)</span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:23" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i b c -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a b -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Reified.html#t:ReifiedIndexedGetter">ReifiedIndexedGetter</a> i a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:24" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:24')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p) =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:24" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p b c -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a b -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:25" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:25')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b)</span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:25" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b b c -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b b c -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a b -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a b -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Iso.html#t:Exchange">Exchange</a> a b a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:26" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:26')"></span> <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b)</span> <a href="#t:Profunctor" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:26" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b b c -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b b c -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a b -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a b -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b b c -&gt; (a -&gt; b) -&gt; <a href="Control-Lens-Internal-Prism.html#t:Market">Market</a> a b a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:27" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:27')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:27" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:28" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:28')"></span> <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:28" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:29" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:29')"></span> (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:29" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Product.html#t:Product">Product</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p q a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:30" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:30')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p) =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:30" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Tannen.html#t:Tannen">Tannen</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> f p a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Profunctor:Profunctor:31" class="instance expander" onclick="toggleSection('i:ic:Profunctor:Profunctor:31')"></span> (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g)</span></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Profunctor:Profunctor:31" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a d <a href="#v:dimap" class="selflink">#</a></p><p class="src"><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g b c -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a c <a href="#v:lmap" class="selflink">#</a></p><p class="src"><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a c <a href="#v:rmap" class="selflink">#</a></p><p class="src"><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> c b =&gt; (b -&gt; c) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a b -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a c <a href="#v:-35-." class="selflink">#</a></p><p class="src"><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> b a =&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g b c -&gt; (a -&gt; b) -&gt; <a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Biff.html#t:Biff">Biff</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Kind.html#t:-42-">*</a> p f g a c <a href="#v:.-35-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:dimapping" class="def">dimapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s' t' a' b' -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p a s') (q b t') (p s a') (q t b') <a href="src/Control-Lens-Iso.html#dimapping" class="link">Source</a> <a href="#v:dimapping" class="selflink">#</a></p><div class="doc"><p>Lift two <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>s into both arguments of a <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> simultaneously.</p><pre>dimapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s' t' a' b' -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p a s') (p b t') (p s a') (p t b')
dimapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s' a' -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p a s') (p s a')
</pre></div></div><div class="top"><p class="src"><a id="v:lmapping" class="def">lmapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p a x) (q b y) (p s x) (q t y) <a href="src/Control-Lens-Iso.html#lmapping" class="link">Source</a> <a href="#v:lmapping" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> contravariantly into the left argument of a <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>.</p><pre>lmapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p a x) (p b y) (p s x) (p t y)
lmapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p a x) (p s x)
</pre></div></div><div class="top"><p class="src"><a id="v:rmapping" class="def">rmapping</a> :: (<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (p x s) (q y t) (p x a) (q y b) <a href="src/Control-Lens-Iso.html#rmapping" class="link">Source</a> <a href="#v:rmapping" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> covariantly into the right argument of a <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>.</p><pre>rmapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p x s) (p y t) (p x a) (p y b)
rmapping :: <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p x s) (p x a)
</pre></div></div><h1 id="g:9">Bifunctors</h1><div class="top"><p class="src"><a id="v:bimapping" class="def">bimapping</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s' t' a' b' -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s s') (g t t') (f a a') (g b b') <a href="src/Control-Lens-Iso.html#bimapping" class="link">Source</a> <a href="#v:bimapping" class="selflink">#</a></p><div class="doc"><p>Lift two <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code>s into both arguments of a <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code>.</p><pre>bimapping :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s' t' a' b' -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p s s') (p t t') (p a a') (p b b')
bimapping :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s' a' -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p s s') (p a a')
</pre></div></div><div class="top"><p class="src"><a id="v:firsting" class="def">firsting</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f s x) (g t y) (f a x) (g b y) <a href="src/Control-Lens-Iso.html#firsting" class="link">Source</a> <a href="#v:firsting" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> into the first argument of a <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code>.</p><pre>firsting :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p s x) (p t y) (p a x) (p b y)
firsting :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p s x) (p a x)
</pre></div></div><div class="top"><p class="src"><a id="v:seconding" class="def">seconding</a> :: (<a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> f, <a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a> g) =&gt; <a href="Control-Lens-Iso.html#t:AnIso">AnIso</a> s t a b -&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> (f x s) (g y t) (f x a) (g y b) <a href="src/Control-Lens-Iso.html#seconding" class="link">Source</a> <a href="#v:seconding" class="selflink">#</a></p><div class="doc"><p>Lift an <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> into the second argument of a <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code>. This is
 essentially the same as <code><a href="Control-Lens-Iso.html#v:mapping">mapping</a></code>, but it takes a 'Bifunctor p'
 constraint instead of a 'Functor (p a)' one.</p><pre>seconding :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> s t a b -&gt; <code><a href="Control-Lens-Iso.html#t:Iso">Iso</a></code> (p x s) (p y t) (p x a) (p y b)
seconding :: <code><a href="Control-Lens-Review.html#t:Bifunctor">Bifunctor</a></code> p =&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> s a -&gt; <code><a href="Control-Lens-Iso.html#t:Iso-39-">Iso'</a></code> (p x s) (p x a)
</pre></div></div><h1 id="g:10">Coercions</h1><div class="top"><p class="src"><a id="v:coerced" class="def">coerced</a> :: <span class="keyword">forall</span> s t a b. (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> s a, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Coerce.html#t:Coercible">Coercible</a> t b) =&gt; <a href="Control-Lens-Iso.html#t:Iso">Iso</a> s t a b <a href="src/Control-Lens-Iso.html#coerced" class="link">Source</a> <a href="#v:coerced" class="selflink">#</a></p><div class="doc"><p>Data types that are representationally equal are isomorphic.</p><p>This is only available on GHC 7.8+</p><p><em>Since: 4.13</em></p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>