This file is indexed.

/usr/share/doc/libghc-categories-doc/html/Control-Category-Cartesian.html is in libghc-categories-doc 0.59-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
<!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.Category.Cartesian</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-Category-Cartesian.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Category-Cartesian.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">categories-0.59: categories from category-extras</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (class-associated types)</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett &lt;ekmett@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Control.Category.Cartesian</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Pre-(Co)Cartesian categories
</a></li><li><a href="#g:2">(Co)Cartesian categories
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> (<a href="Control-Category-Associative.html#t:Associative">Associative</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Symmetric">Symmetric</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Braided">Braided</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k)) =&gt; <a href="#t:PreCartesian">PreCartesian</a> k  <span class="keyword">where</span><ul class="subs"><li><span class="keyword">type</span> <a href="#t:Product">Product</a> k :: * -&gt; * -&gt; *</li><li><a href="#v:fst">fst</a> ::  <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` a</li><li><a href="#v:snd">snd</a> ::  <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` b</li><li><a href="#v:diag">diag</a> ::  a `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a a</li><li><a href="#v:-38--38--38-">(&amp;&amp;&amp;)</a> ::  (a `k` b) -&gt; (a `k` c) -&gt; a `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c</li></ul></li><li class="src short"><a href="#v:bimapProduct">bimapProduct</a> :: (<a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k, &lt;*&gt; ~ <a href="Control-Category-Cartesian.html#t:Product">Product</a> k) =&gt; (a `k` c) -&gt; (b `k` d) -&gt; (a &lt;*&gt; b) `k` (c &lt;*&gt; d)</li><li class="src short"><a href="#v:braidProduct">braidProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k b a</li><li class="src short"><a href="#v:associateProduct">associateProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b) c `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c)</li><li class="src short"><a href="#v:disassociateProduct">disassociateProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c) `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b) c</li><li class="src short"><span class="keyword">class</span> (<a href="Control-Category-Associative.html#t:Associative">Associative</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Braided.html#t:Symmetric">Symmetric</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Braided">Braided</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k)) =&gt; <a href="#t:PreCoCartesian">PreCoCartesian</a> k  <span class="keyword">where</span><ul class="subs"><li><span class="keyword">type</span> <a href="#t:Sum">Sum</a> k :: * -&gt; * -&gt; *</li><li><a href="#v:inl">inl</a> ::  a `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b</li><li><a href="#v:inr">inr</a> ::  b `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b</li><li><a href="#v:codiag">codiag</a> ::  <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a a `k` a</li><li><a href="#v:-124--124--124-">(|||)</a> ::  (a `k` c) -&gt; (b `k` c) -&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b `k` c</li></ul></li><li class="src short"><a href="#v:bimapSum">bimapSum</a> :: (<a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k, <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k ~ +) =&gt; (a `k` c) -&gt; (b `k` d) -&gt; (a + b) `k` (c + d)</li><li class="src short"><a href="#v:braidSum">braidSum</a> :: (<a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k, + ~ <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k) =&gt; (a + b) `k` (b + a)</li><li class="src short"><a href="#v:associateSum">associateSum</a> :: <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b) c `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k b c)</li><li class="src short"><a href="#v:disassociateSum">disassociateSum</a> :: <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k b c) `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b) c</li><li class="src short"><span class="keyword">class</span> (<a href="Control-Category-Monoidal.html#t:Monoidal">Monoidal</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k) =&gt; <a href="#t:Cartesian">Cartesian</a> k </li><li class="src short"><span class="keyword">class</span> (<a href="Control-Category-Monoidal.html#t:Comonoidal">Comonoidal</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k) =&gt; <a href="#t:CoCartesian">CoCartesian</a> k </li></ul></div><div id="interface"><h1 id="g:1">Pre-(Co)Cartesian categories
</h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Control-Category-Associative.html#t:Associative">Associative</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Symmetric">Symmetric</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Braided">Braided</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k)) =&gt; <a name="t:PreCartesian" class="def">PreCartesian</a> k  <span class="keyword">where</span><a href="src/Control-Category-Cartesian.html#PreCartesian" class="link">Source</a></p><div class="doc"><p>NB: This is weaker than traditional category with products! That is Cartesian, below.
The problem is <code>(-&gt;)</code> lacks an initial object, since every type is inhabited in Haskell.
Consequently its coproduct is merely a semigroup, not a monoid (as it has no identity), and 
since we want to be able to describe its dual category, which has this non-traditional 
form being built over a category with an associative bifunctor rather than as a monoidal category
for the product monoid.
</p><p>Minimum definition: 
</p><pre> fst, snd, diag 
 fst, snd, (&amp;&amp;&amp;)
</pre></div><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a name="t:Product" class="def">Product</a> k :: * -&gt; * -&gt; *<a href="src/Control-Category-Cartesian.html#Product" class="link">Source</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:fst" class="def">fst</a> ::  <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` a<a href="src/Control-Category-Cartesian.html#fst" class="link">Source</a></p><p class="src"><a name="v:snd" class="def">snd</a> ::  <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` b<a href="src/Control-Category-Cartesian.html#snd" class="link">Source</a></p><p class="src"><a name="v:diag" class="def">diag</a> ::  a `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a a<a href="src/Control-Category-Cartesian.html#diag" class="link">Source</a></p><p class="src"><a name="v:-38--38--38-" class="def">(&amp;&amp;&amp;)</a> ::  (a `k` b) -&gt; (a `k` c) -&gt; a `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c<a href="src/Control-Category-Cartesian.html#%26%26%26" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:PreCartesian" class="caption collapser" onclick="toggleSection('i:PreCartesian')">Instances</p><div id="section.i:PreCartesian" class="show"><table><tr><td class="src"><a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:bimapProduct" class="def">bimapProduct</a> :: (<a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k, &lt;*&gt; ~ <a href="Control-Category-Cartesian.html#t:Product">Product</a> k) =&gt; (a `k` c) -&gt; (b `k` d) -&gt; (a &lt;*&gt; b) `k` (c &lt;*&gt; d)<a href="src/Control-Category-Cartesian.html#bimapProduct" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> for the product <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Product k</code> if <code>(&amp;&amp;&amp;)</code> is known
</p></div></div><div class="top"><p class="src"><a name="v:braidProduct" class="def">braidProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k b a<a href="src/Control-Category-Cartesian.html#braidProduct" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Braided.html#t:Braided">Braided</a></code> for the product <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Product k</code>
 braidProduct :: (PreCartesian k, Product k ~ (<a href="*">*</a>))  =&gt; a <a href="*">*</a> b ~&gt; b <a href="*">*</a> a
</p></div></div><div class="top"><p class="src"><a name="v:associateProduct" class="def">associateProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b) c `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c)<a href="src/Control-Category-Cartesian.html#associateProduct" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Associative.html#t:Associative">Associative</a></code> for the product <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Product k</code>
 associateProduct :: (PreCartesian k, (<a href="*">*</a>) ~ Product k)  =&gt; (a <a href="*">*</a> b) <a href="*">*</a> c ~&gt; (a <a href="*">*</a> (b <a href="*">*</a> c))
</p></div></div><div class="top"><p class="src"><a name="v:disassociateProduct" class="def">disassociateProduct</a> :: <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Product">Product</a> k a (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k b c) `k` <a href="Control-Category-Cartesian.html#t:Product">Product</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k a b) c<a href="src/Control-Category-Cartesian.html#disassociateProduct" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a></code> for the product <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Product k</code>
 disassociateProduct:: (PreCartesian k,  (<a href="*">*</a>) ~ Product k) =&gt; a <a href="*">*</a> (b <a href="*">*</a> c) ~&gt; (a <a href="*">*</a> b) <a href="*">*</a> c
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Control-Category-Associative.html#t:Associative">Associative</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Braided.html#t:Symmetric">Symmetric</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Braided.html#t:Braided">Braided</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k)) =&gt; <a name="t:PreCoCartesian" class="def">PreCoCartesian</a> k  <span class="keyword">where</span><a href="src/Control-Category-Cartesian.html#PreCoCartesian" class="link">Source</a></p><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a name="t:Sum" class="def">Sum</a> k :: * -&gt; * -&gt; *<a href="src/Control-Category-Cartesian.html#Sum" class="link">Source</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:inl" class="def">inl</a> ::  a `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b<a href="src/Control-Category-Cartesian.html#inl" class="link">Source</a></p><p class="src"><a name="v:inr" class="def">inr</a> ::  b `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b<a href="src/Control-Category-Cartesian.html#inr" class="link">Source</a></p><p class="src"><a name="v:codiag" class="def">codiag</a> ::  <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a a `k` a<a href="src/Control-Category-Cartesian.html#codiag" class="link">Source</a></p><p class="src"><a name="v:-124--124--124-" class="def">(|||)</a> ::  (a `k` c) -&gt; (b `k` c) -&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b `k` c<a href="src/Control-Category-Cartesian.html#%7C%7C%7C" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:PreCoCartesian" class="caption collapser" onclick="toggleSection('i:PreCoCartesian')">Instances</p><div id="section.i:PreCoCartesian" class="show"><table><tr><td class="src"><a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> (-&gt;)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:bimapSum" class="def">bimapSum</a> :: (<a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k, <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k ~ +) =&gt; (a `k` c) -&gt; (b `k` d) -&gt; (a + b) `k` (c + d)<a href="src/Control-Category-Cartesian.html#bimapSum" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> for the coproduct <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Sum k</code> if <code>(|||)</code> is known
</p></div></div><div class="top"><p class="src"><a name="v:braidSum" class="def">braidSum</a> :: (<a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k, + ~ <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k) =&gt; (a + b) `k` (b + a)<a href="src/Control-Category-Cartesian.html#braidSum" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Braided.html#t:Braided">Braided</a></code> for the coproduct <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Sum k</code>
</p></div></div><div class="top"><p class="src"><a name="v:associateSum" class="def">associateSum</a> :: <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b) c `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k b c)<a href="src/Control-Category-Cartesian.html#associateSum" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Associative.html#t:Associative">Associative</a></code> for the coproduct <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Sum k</code>
 associateSum :: (PreCoCartesian k, (+) ~ Sum k) =&gt; ((a + b) + c) ~&gt; (a + (b + c))
</p></div></div><div class="top"><p class="src"><a name="v:disassociateSum" class="def">disassociateSum</a> :: <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k =&gt; <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k b c) `k` <a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k a b) c<a href="src/Control-Category-Cartesian.html#disassociateSum" class="link">Source</a></p><div class="doc"><p>free construction of <code><a href="Control-Category-Associative.html#t:Disassociative">Disassociative</a></code> for the coproduct <code><a href="Control-Categorical-Bifunctor.html#t:Bifunctor">Bifunctor</a></code> <code>Sum k</code>
 disassociateSum :: (PreCoCartesian k, (+) ~ Sum k) =&gt; (a + (b + c)) ~&gt; ((a + b) + c)
</p></div></div><h1 id="g:2">(Co)Cartesian categories
</h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="Control-Category-Monoidal.html#t:Monoidal">Monoidal</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k) =&gt; <a name="t:Cartesian" class="def">Cartesian</a> k <a href="src/Control-Category-Cartesian.html#Cartesian" class="link">Source</a></p><div class="subs instances"><p id="control.i:Cartesian" class="caption collapser" onclick="toggleSection('i:Cartesian')">Instances</p><div id="section.i:Cartesian" class="show"><table><tr><td class="src">(<a href="Control-Category-Monoidal.html#t:Monoidal">Monoidal</a> k (<a href="Control-Category-Cartesian.html#t:Product">Product</a> k), <a href="Control-Category-Cartesian.html#t:PreCartesian">PreCartesian</a> k) =&gt; <a href="Control-Category-Cartesian.html#t:Cartesian">Cartesian</a> k</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-Category-Monoidal.html#t:Comonoidal">Comonoidal</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k) =&gt; <a name="t:CoCartesian" class="def">CoCartesian</a> k <a href="src/Control-Category-Cartesian.html#CoCartesian" class="link">Source</a></p><div class="subs instances"><p id="control.i:CoCartesian" class="caption collapser" onclick="toggleSection('i:CoCartesian')">Instances</p><div id="section.i:CoCartesian" class="show"><table><tr><td class="src">(<a href="Control-Category-Monoidal.html#t:Comonoidal">Comonoidal</a> k (<a href="Control-Category-Cartesian.html#t:Sum">Sum</a> k), <a href="Control-Category-Cartesian.html#t:PreCoCartesian">PreCoCartesian</a> k) =&gt; <a href="Control-Category-Cartesian.html#t:CoCartesian">CoCartesian</a> k</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.10.0</p></div></body></html>