This file is indexed.

/usr/share/doc/libghc-profunctors-doc/html/Data-Profunctor-Unsafe.html is in libghc-profunctors-doc 5.1.2-1build1.

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
<!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>Data.Profunctor.Unsafe</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_Data-Profunctor-Unsafe.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Profunctor-Unsafe.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">profunctors-5.1.2: Profunctors</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(C) 2011-2013 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>portable</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Data.Profunctor.Unsafe</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Profunctors</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>For a good explanation of profunctors in Haskell see Dan Piponi's article:</p><p><a href="http://blog.sigfpe.com/2011/07/profunctors-in-haskell.html">http://blog.sigfpe.com/2011/07/profunctors-in-haskell.html</a></p><p>This module includes <em>unsafe</em> composition operators that are useful in
 practice when it comes to generating optimal core in GHC.</p><p>If you import this module you are taking upon yourself the obligation
 that you will only call the operators with <code>#</code> in their names with functions
 that are operationally identity such as <code>newtype</code> constructors or the field
 accessor of a <code>newtype</code>.</p><p>If you are ever in doubt, use <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> or <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code>.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Profunctor">Profunctor</a> p <span class="keyword">where</span><ul class="subs"><li><a href="#v:dimap">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; p b c -&gt; p a d</li><li><a href="#v:lmap">lmap</a> :: (a -&gt; b) -&gt; p b c -&gt; p a c</li><li><a href="#v:rmap">rmap</a> :: (b -&gt; c) -&gt; p a b -&gt; p a c</li><li><a href="#v:-35-.">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Coerce.html#t:Coercible">Coercible</a> c b =&gt; (b -&gt; c) -&gt; p a b -&gt; p a c</li><li><a href="#v:.-35-">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Coerce.html#t:Coercible">Coercible</a> b a =&gt; p b c -&gt; (a -&gt; b) -&gt; p a c</li></ul></li></ul></div><div id="interface"><h1 id="g:1">Profunctors</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Profunctor" class="def">Profunctor</a> p <span class="keyword">where</span> <a href="src/Data-Profunctor-Unsafe.html#Profunctor" class="link">Source</a></p><div class="doc"><p>Formally, the class <code><a href="Data-Profunctor-Unsafe.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="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a></code> by either defining <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> or by defining both
 <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> and <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code>.</p><p>If you supply <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code>, you should ensure that:</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code></pre><p>If you supply <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> and <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code>, ensure:</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code>
<code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code> &#8801; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code>
</pre><p>If you supply both, you should also ensure:</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> g</pre><p>These ensure by parametricity:</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> g) (h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> i) &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> g h <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> f i
<code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> g) &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> g <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> f
<code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> (f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> g) &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> <code><a href="Data-Profunctor-Unsafe.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="Data-Profunctor-Unsafe.html#v:dimap">dimap</a> | <a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a>, <a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:dimap" class="def">dimap</a> :: (a -&gt; b) -&gt; (c -&gt; d) -&gt; p b c -&gt; p a d <a href="src/Data-Profunctor-Unsafe.html#dimap" class="link">Source</a></p><div class="doc"><p>Map over both arguments at the same time.</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> f g &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:.">.</a></code> <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> g</pre></div><p class="src"><a name="v:lmap" class="def">lmap</a> :: (a -&gt; b) -&gt; p b c -&gt; p a c <a href="src/Data-Profunctor-Unsafe.html#lmap" class="link">Source</a></p><div class="doc"><p>Map the first argument contravariantly.</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> f &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> f <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code></pre></div><p class="src"><a name="v:rmap" class="def">rmap</a> :: (b -&gt; c) -&gt; p a b -&gt; p a c <a href="src/Data-Profunctor-Unsafe.html#rmap" class="link">Source</a></p><div class="doc"><p>Map the second argument covariantly.</p><pre><code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> &#8801; <code><a href="Data-Profunctor-Unsafe.html#v:dimap">dimap</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Category.html#v:id">id</a></code></pre></div><p class="src"><a name="v:-35-." class="def">(#.)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Coerce.html#t:Coercible">Coercible</a> c b =&gt; (b -&gt; c) -&gt; p a b -&gt; p a c <span class="fixity">infixr 9</span><span class="rightedge"></span> <a href="src/Data-Profunctor-Unsafe.html#%23." class="link">Source</a></p><div class="doc"><p>Strictly map the second argument argument
 covariantly with a function that is assumed
 operationally to be a cast, such as a newtype
 constructor.</p><p><em>Note:</em> This operation is explicitly <em>unsafe</em>
 since an implementation may choose to use
 <code>unsafeCoerce</code> to implement this combinator
 and it has no way to validate that your function
 meets the requirements.</p><p>If you implement this combinator with
 <code>unsafeCoerce</code>, then you are taking upon yourself
 the obligation that you don't use GADT-like
 tricks to distinguish values.</p><p>If you import <a href="Data-Profunctor-Unsafe.html">Data.Profunctor.Unsafe</a> you are
 taking upon yourself the obligation that you
 will only call this with a first argument that is
 operationally identity.</p><p>The semantics of this function with respect to bottoms
 should match the default definition:</p><pre>(<code><a href="Profuctor-Unsafe.html#v:-35-.">#.</a></code>) &#8801; \f -&gt; \p -&gt; p `seq` <code><a href="Data-Profunctor-Unsafe.html#v:rmap">rmap</a></code> f p</pre></div><p class="src"><a name="v:.-35-" class="def">(.#)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Coerce.html#t:Coercible">Coercible</a> b a =&gt; p b c -&gt; (a -&gt; b) -&gt; p a c <span class="fixity">infixl 8</span><span class="rightedge"></span> <a href="src/Data-Profunctor-Unsafe.html#.%23" class="link">Source</a></p><div class="doc"><p>Strictly map the first argument argument
 contravariantly with a function that is assumed
 operationally to be a cast, such as a newtype
 constructor.</p><p><em>Note:</em> This operation is explicitly <em>unsafe</em>
 since an implementation may choose to use
 <code>unsafeCoerce</code> to implement this combinator
 and it has no way to validate that your function
 meets the requirements.</p><p>If you implement this combinator with
 <code>unsafeCoerce</code>, then you are taking upon yourself
 the obligation that you don't use GADT-like
 tricks to distinguish values.</p><p>If you import <a href="Data-Profunctor-Unsafe.html">Data.Profunctor.Unsafe</a> you are
 taking upon yourself the obligation that you
 will only call this with a second argument that is
 operationally identity.</p><pre>(<code><a href="Data-Profunctor-Unsafe.html#v:.-35-">.#</a></code>) &#8801; \p -&gt; p `seq` \f -&gt; <code><a href="Data-Profunctor-Unsafe.html#v:lmap">lmap</a></code> f p</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"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (-&gt;)</span> <a href="src/Data-Profunctor-Unsafe.html#line-183" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Kleisli">Kleisli</a> m)</span> <a href="src/Data-Profunctor-Unsafe.html#line-216" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Joker.html#t:Joker">Joker</a> f)</span> <a href="src/Data-Profunctor-Unsafe.html#line-254" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-contravariant-doc/html/Data-Functor-Contravariant.html#t:Contravariant">Contravariant</a> f =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-bifunctors-doc/html/Data-Bifunctor-Clown.html#t:Clown">Clown</a> f)</span> <a href="src/Data-Profunctor-Unsafe.html#line-246" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> w =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-comonad-doc/html/Control-Comonad.html#t:Cokleisli">Cokleisli</a> w)</span> <a href="src/Data-Profunctor-Unsafe.html#line-231" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="file:///usr/share/doc/libghc-tagged-doc/html/Data-Tagged.html#t:Tagged">Tagged</a> *)</span> <a href="src/Data-Profunctor-Unsafe.html#line-200" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor.html#t:Forget">Forget</a> r)</span> <a href="src/Data-Profunctor-Unsafe.html#line-221" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Arrow.html#t:Arrow">Arrow</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor.html#t:WrappedArrow">WrappedArrow</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-208" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor.html#t:Costar">Costar</a> f)</span> <a href="src/Data-Profunctor-Unsafe.html#line-127" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor.html#t:Star">Star</a> f)</span> <a href="src/Data-Profunctor-Unsafe.html#line-76" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Closed.html#t:Environment">Environment</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-153" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Closed.html#t:Closure">Closure</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-72" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Codensity.html#t:Codensity">Codensity</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-30" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Tambara.html#t:Copastro">Copastro</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-237" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Tambara.html#t:Cotambara">Cotambara</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-198" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Tambara.html#t:Pastro">Pastro</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-151" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Tambara.html#t:Tambara">Tambara</a> p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-44" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Functor.html#t:Functor">Functor</a> f, <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p) =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Cayley.html#t:Cayley">Cayley</a> f p)</span> <a href="src/Data-Profunctor-Unsafe.html#line-43" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p, <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Composition.html#t:Rift">Rift</a> p q)</span> <a href="src/Data-Profunctor-Unsafe.html#line-240" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p, <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Composition.html#t:Procompose">Procompose</a> p q)</span> <a href="src/Data-Profunctor-Unsafe.html#line-78" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left">(<a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> p, <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> q) =&gt; <a href="Data-Profunctor-Unsafe.html#t:Profunctor">Profunctor</a> (<a href="Data-Profunctor-Ran.html#t:Ran">Ran</a> p q)</span> <a href="src/Data-Profunctor-Unsafe.html#line-43" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>