This file is indexed.

/usr/share/doc/libghc-lens-doc/html/Control-Lens-Internal-Context.html is in libghc-lens-doc 4.1.2.1-3.

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Lens.Internal.Context</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-Internal-Context.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-Internal-Context.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.1.2.1: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.Internal.Context</p></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span>  <a href="#t:IndexedFunctor">IndexedFunctor</a> w  <span class="keyword">where</span><ul class="subs"><li><a href="#v:ifmap">ifmap</a> ::  (s -&gt; t) -&gt; w a b s -&gt; w a b t</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> w =&gt; <a href="#t:IndexedComonad">IndexedComonad</a> w  <span class="keyword">where</span><ul class="subs"><li><a href="#v:iextract">iextract</a> ::  w a a t -&gt; t</li><li><a href="#v:iduplicate">iduplicate</a> ::  w a c t -&gt; w a b (w b c t)</li><li><a href="#v:iextend">iextend</a> ::  (w b c t -&gt; r) -&gt; w a c t -&gt; w a b r</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> w =&gt; <a href="#t:IndexedComonadStore">IndexedComonadStore</a> w  <span class="keyword">where</span><ul class="subs"><li><a href="#v:ipos">ipos</a> ::  w a c t -&gt; a</li><li><a href="#v:ipeek">ipeek</a> ::  c -&gt; w a c t -&gt; t</li><li><a href="#v:ipeeks">ipeeks</a> ::  (a -&gt; c) -&gt; w a c t -&gt; t</li><li><a href="#v:iseek">iseek</a> ::  b -&gt; w a c t -&gt; w b c t</li><li><a href="#v:iseeks">iseeks</a> ::  (a -&gt; b) -&gt; w a c t -&gt; w b c t</li><li><a href="#v:iexperiment">iexperiment</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; (b -&gt; f c) -&gt; w b c t -&gt; f t</li><li><a href="#v:context">context</a> ::  w a b t -&gt; <a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a b t</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="#t:Sellable">Sellable</a> p w | w -&gt; p <span class="keyword">where</span><ul class="subs"><li><a href="#v:sell">sell</a> ::  p a (w a b b)</li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Context">Context</a> a b t = <a href="#v:Context">Context</a> (b -&gt; t) a</li><li class="src short"><span class="keyword">type</span> <a href="#t:Context-39-">Context'</a> a = <a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Pretext">Pretext</a> p a b t = <a href="#v:Pretext">Pretext</a> {<ul class="subs"><li><a href="#v:runPretext">runPretext</a> :: <span class="keyword">forall</span> f. <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; p a (f b) -&gt; f t</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:Pretext-39-">Pretext'</a> p a = <a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p a a</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:PretextT">PretextT</a> p g a b t = <a href="#v:PretextT">PretextT</a> {<ul class="subs"><li><a href="#v:runPretextT">runPretextT</a> :: <span class="keyword">forall</span> f. <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; p a (f b) -&gt; f t</li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:PretextT-39-">PretextT'</a> p g a = <a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:IndexedFunctor" class="def">IndexedFunctor</a> w  <span class="keyword">where</span><a href="src/Control-Lens-Internal-Context.html#IndexedFunctor" class="link">Source</a></p><div class="doc"><p>This is a Bob Atkey -style 2-argument indexed functor.
</p><p>It exists as a superclass for <code><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a></code> and expresses the functoriality
 of an <code><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a></code> in its third argument.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ifmap" class="def">ifmap</a> ::  (s -&gt; t) -&gt; w a b s -&gt; w a b t<a href="src/Control-Lens-Internal-Context.html#ifmap" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:IndexedFunctor" class="caption collapser" onclick="toggleSection('i:IndexedFunctor')">Instances</p><div id="section.i:IndexedFunctor" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> <a href="Control-Lens-Internal-Magma.html#t:Mafic">Mafic</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar1">Bazaar1</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar">Bazaar</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Magma.html#t:Molten">Molten</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT1">BazaarT1</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT">BazaarT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Magma.html#t:TakingWhile">TakingWhile</a> p f)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> w =&gt; <a name="t:IndexedComonad" class="def">IndexedComonad</a> w  <span class="keyword">where</span><a href="src/Control-Lens-Internal-Context.html#IndexedComonad" class="link">Source</a></p><div class="doc"><p>This is a Bob Atkey -style 2-argument indexed comonad.
</p><p>It exists as a superclass for <code><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a></code> and expresses the functoriality
 of an <code><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a></code> in its third argument.
</p><p>The notion of indexed monads is covered in more depth in Bob Atkey's
 <a href="Parameterized Notions of Computation.html">Parameterized Notions of Computation</a> <a href="http://bentnib.org/paramnotions-jfp.pdf">http://bentnib.org/paramnotions-jfp.pdf</a>
 and that construction is dualized here.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:iextract" class="def">iextract</a> ::  w a a t -&gt; t<a href="src/Control-Lens-Internal-Context.html#iextract" class="link">Source</a></p><div class="doc"><p>extract from an indexed comonadic value when the indices match.
</p></div><p class="src"><a name="v:iduplicate" class="def">iduplicate</a> ::  w a c t -&gt; w a b (w b c t)<a href="src/Control-Lens-Internal-Context.html#iduplicate" class="link">Source</a></p><div class="doc"><p>duplicate an indexed comonadic value splitting the index.
</p></div><p class="src"><a name="v:iextend" class="def">iextend</a> ::  (w b c t -&gt; r) -&gt; w a c t -&gt; w a b r<a href="src/Control-Lens-Internal-Context.html#iextend" class="link">Source</a></p><div class="doc"><p>extend a indexed comonadic computation splitting the index.
</p></div></div><div class="subs instances"><p id="control.i:IndexedComonad" class="caption collapser" onclick="toggleSection('i:IndexedComonad')">Instances</p><div id="section.i:IndexedComonad" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar1">Bazaar1</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar">Bazaar</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Magma.html#t:Molten">Molten</a> i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT1">BazaarT1</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT">BazaarT</a> p g)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> w =&gt; <a name="t:IndexedComonadStore" class="def">IndexedComonadStore</a> w  <span class="keyword">where</span><a href="src/Control-Lens-Internal-Context.html#IndexedComonadStore" class="link">Source</a></p><div class="doc"><p>This is an indexed analogue to <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#t:ComonadStore">ComonadStore</a></code> for when you are working with an
 <code><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a></code>.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ipos" class="def">ipos</a> ::  w a c t -&gt; a<a href="src/Control-Lens-Internal-Context.html#ipos" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:pos">pos</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:ipeek" class="def">ipeek</a> ::  c -&gt; w a c t -&gt; t<a href="src/Control-Lens-Internal-Context.html#ipeek" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:peek">peek</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:ipeeks" class="def">ipeeks</a> ::  (a -&gt; c) -&gt; w a c t -&gt; t<a href="src/Control-Lens-Internal-Context.html#ipeeks" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:peeks">peeks</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:iseek" class="def">iseek</a> ::  b -&gt; w a c t -&gt; w b c t<a href="src/Control-Lens-Internal-Context.html#iseek" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:seek">seek</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:iseeks" class="def">iseeks</a> ::  (a -&gt; b) -&gt; w a c t -&gt; w b c t<a href="src/Control-Lens-Internal-Context.html#iseeks" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:seeks">seeks</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:iexperiment" class="def">iexperiment</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; (b -&gt; f c) -&gt; w b c t -&gt; f t<a href="src/Control-Lens-Internal-Context.html#iexperiment" class="link">Source</a></p><div class="doc"><p>This is the generalization of <code><a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#v:experiment">experiment</a></code> to an indexed comonad store.
</p></div><p class="src"><a name="v:context" class="def">context</a> ::  w a b t -&gt; <a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a b t<a href="src/Control-Lens-Internal-Context.html#context" class="link">Source</a></p><div class="doc"><p>We can always forget the rest of the structure of <code>w</code> and obtain a simpler
 indexed comonad store model called <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code>.
</p></div></div><div class="subs instances"><p id="control.i:IndexedComonadStore" class="caption collapser" onclick="toggleSection('i:IndexedComonadStore')">Instances</p><div id="section.i:IndexedComonadStore" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a name="t:Sellable" class="def">Sellable</a> p w | w -&gt; p <span class="keyword">where</span><a href="src/Control-Lens-Internal-Context.html#Sellable" class="link">Source</a></p><div class="doc"><p>This is used internally to construct a <code><a href="Control-Lens-Internal-Bazaar.html#t:Bazaar">Bazaar</a></code>, <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> or <code><a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a></code>
 from a singleton value.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:sell" class="def">sell</a> ::  p a (w a b b)<a href="src/Control-Lens-Internal-Context.html#sell" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Sellable" class="caption collapser" onclick="toggleSection('i:Sellable')">Instances</p><div id="section.i:Sellable" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> (-&gt;) <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> (-&gt;) <a href="Control-Lens-Internal-Magma.html#t:Mafic">Mafic</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar1">Bazaar1</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Bazaar.html#t:Bazaar">Bazaar</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT1">BazaarT1</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Bazaar.html#t:BazaarT">BazaarT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</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)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Context" class="def">Context</a> a b t <a href="src/Control-Lens-Internal-Context.html#Context" class="link">Source</a></p><div class="doc"><p>The indexed store can be used to characterize a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code>
 and is used by <code><a href="Control-Lens-Lens.html#t:clone">clone</a></code>.
</p><p><code><code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> a b t</code> is isomorphic to
 <code>newtype <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> a b t = <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> { runContext :: forall f. <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a></code> f =&gt; (a -&gt; f b) -&gt; f t }</code>,
 and to <code>exists s. (s, <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> s t a b)</code>.
</p><p>A <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> is like a <code><a href="Control-Lens-Lens.html#t:Lens">Lens</a></code> that has already been applied to a some structure.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Context" class="def">Context</a> (b -&gt; t) a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Context" class="caption collapser" onclick="toggleSection('i:Context')">Instances</p><div id="section.i:Context" class="show"><table><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> (-&gt;) <a href="Control-Lens-Internal-Context.html#t:Context">Context</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * a b =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#t:ComonadStore">ComonadStore</a> a (<a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">~ * a b =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Comonad">Comonad</a> (<a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Context-39-" class="def">Context'</a> a = <a href="Control-Lens-Internal-Context.html#t:Context">Context</a> a a<a href="src/Control-Lens-Internal-Context.html#Context%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Internal-Context.html#t:Context-39-">Context'</a></code> a s = <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> a a s</pre></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Pretext" class="def">Pretext</a> p a b t <a href="src/Control-Lens-Internal-Context.html#Pretext" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> that can be repeatedly cloned with less
 impact on its performance, and which permits the use of an arbitrary <code><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a></code>
 <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Pretext" class="def">Pretext</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runPretext" class="def">runPretext</a> :: <span class="keyword">forall</span> f. <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; p a (f b) -&gt; f t</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Pretext" class="caption collapser" onclick="toggleSection('i:Pretext')">Instances</p><div id="section.i:Pretext" class="show"><table><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(~ * a b, <a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p) =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#t:ComonadStore">ComonadStore</a> a (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(~ * a b, <a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p) =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Comonad">Comonad</a> (<a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Pretext-39-" class="def">Pretext'</a> p a = <a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a> p a a<a href="src/Control-Lens-Internal-Context.html#Pretext%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Internal-Context.html#t:Pretext-39-">Pretext'</a></code> p a s = <code><a href="Control-Lens-Internal-Context.html#t:Pretext">Pretext</a></code> p a a s</pre></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:PretextT" class="def">PretextT</a> p g a b t <a href="src/Control-Lens-Internal-Context.html#PretextT" class="link">Source</a></p><div class="doc"><p>This is a generalized form of <code><a href="Control-Lens-Internal-Context.html#t:Context">Context</a></code> that can be repeatedly cloned with less
 impact on its performance, and which permits the use of an arbitrary <code><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a></code>
 <code><a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a></code>.
</p><p>The extra phantom <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a></code> is used to let us lie and claim a <code>Gettable</code> instance under
 limited circumstances. This is used internally to permit a number of combinators to
 gracefully degrade when applied to a <code><a href="Control-Lens-Fold.html#t:Fold">Fold</a></code>, <code><a href="Control-Lens-Getter.html#t:Getter">Getter</a></code>
 or <code><a href="Control-Lens-Action.html#t:Action">Action</a></code>.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PretextT" class="def">PretextT</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runPretextT" class="def">runPretextT</a> :: <span class="keyword">forall</span> f. <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f =&gt; p a (f b) -&gt; f t</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:PretextT" class="caption collapser" onclick="toggleSection('i:PretextT')">Instances</p><div id="section.i:PretextT" class="show"><table><tr><td class="src"><a href="/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Rep.html#t:Corepresentable">Corepresentable</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:Sellable">Sellable</a> p (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(~ * a b, <a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p) =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Store-Class.html#t:ComonadStore">ComonadStore</a> a (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonadStore">IndexedComonadStore</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p =&gt; <a href="Control-Lens-Internal-Context.html#t:IndexedComonad">IndexedComonad</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Control-Lens-Internal-Context.html#t:IndexedFunctor">IndexedFunctor</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(~ * a b, <a href="Control-Lens-Internal-Indexed.html#t:Conjoined">Conjoined</a> p) =&gt; <a href="/usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Comonad">Comonad</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Control-Lens-Iso.html#t:Profunctor">Profunctor</a> p, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> g) =&gt; <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> (<a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:PretextT-39-" class="def">PretextT'</a> p g a = <a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a> p g a a<a href="src/Control-Lens-Internal-Context.html#PretextT%27" class="link">Source</a></p><div class="doc"><pre>type <code><a href="Control-Lens-Internal-Context.html#t:PretextT-39-">PretextT'</a></code> p g a s = <code><a href="Control-Lens-Internal-Context.html#t:PretextT">PretextT</a></code> p g a a s</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>