bsc-leon-vatthauer/agda/bsc-thesis/Monad.Instance.Delay.html
2024-02-09 17:53:52 +01:00

394 lines
277 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Monad.Instance.Delay</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
</style>
<link rel="stylesheet" href="Agda.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<!--
<pre class="Agda"><a id="14" class="Keyword">open</a> <a id="19" class="Keyword">import</a> <a id="26" href="Level.html" class="Module">Level</a>
<a id="32" class="Keyword">open</a> <a id="37" class="Keyword">import</a> <a id="44" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="64" class="Keyword">open</a> <a id="69" class="Keyword">import</a> <a id="76" href="Categories.Monad.html" class="Module">Categories.Monad</a>
<a id="93" class="Keyword">open</a> <a id="98" class="Keyword">import</a> <a id="105" href="Categories.Object.Terminal.html" class="Module">Categories.Object.Terminal</a>
<a id="132" class="Keyword">open</a> <a id="137" class="Keyword">import</a> <a id="144" href="Categories.Category.Construction.F-Coalgebras.html" class="Module">Categories.Category.Construction.F-Coalgebras</a>
<a id="190" class="Keyword">open</a> <a id="195" class="Keyword">import</a> <a id="202" href="Categories.Category.Construction.F-Algebras.html" class="Module">Categories.Category.Construction.F-Algebras</a>
<a id="246" class="Keyword">open</a> <a id="251" class="Keyword">import</a> <a id="258" href="Categories.Functor.Coalgebra.html" class="Module">Categories.Functor.Coalgebra</a>
<a id="287" class="Keyword">open</a> <a id="292" class="Keyword">import</a> <a id="299" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="318" class="Keyword">renaming</a> <a id="327" class="Symbol">(</a><a id="328" href="Categories.Functor.html#349" class="Function">id</a> <a id="331" class="Symbol">to</a> <a id="334" class="Function">idF</a><a id="337" class="Symbol">)</a>
<a id="339" class="Keyword">open</a> <a id="344" class="Keyword">import</a> <a id="351" href="Categories.Functor.Algebra.html" class="Module">Categories.Functor.Algebra</a>
<a id="378" class="Keyword">open</a> <a id="383" class="Keyword">import</a> <a id="390" href="Categories.Monad.Construction.Kleisli.html" class="Module">Categories.Monad.Construction.Kleisli</a>
<a id="428" class="Keyword">open</a> <a id="433" class="Keyword">import</a> <a id="440" href="Categories.Category.Construction.F-Coalgebras.html" class="Module">Categories.Category.Construction.F-Coalgebras</a>
<a id="486" class="Keyword">open</a> <a id="491" class="Keyword">import</a> <a id="498" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a>
<a id="531" class="Keyword">open</a> <a id="536" class="Keyword">import</a> <a id="543" href="Category.Ambient.html" class="Module">Category.Ambient</a> <a id="560" class="Keyword">using</a> <a id="566" class="Symbol">(</a><a id="567" href="Category.Ambient.html#1681" class="Record">Ambient</a><a id="574" class="Symbol">)</a>
<a id="576" class="Keyword">open</a> <a id="581" class="Keyword">import</a> <a id="588" href="Data.Product.html" class="Module">Data.Product</a> <a id="601" class="Keyword">using</a> <a id="607" class="Symbol">(</a><a id="608" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a><a id="616" class="Symbol">;</a> <a id="618" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="621" class="Symbol">;</a> <a id="623" href="Data.Product.Base.html#1244" class="Function">Σ-syntax</a><a id="631" class="Symbol">)</a>
</pre>-->
<pre class="Agda"><a id="649" class="Keyword">module</a> <a id="656" href="Monad.Instance.Delay.html" class="Module">Monad.Instance.Delay</a> <a id="677" class="Symbol">{</a><a id="678" href="Monad.Instance.Delay.html#678" class="Bound">o</a> <a id="680" href="Monad.Instance.Delay.html#680" class="Bound"></a> <a id="682" href="Monad.Instance.Delay.html#682" class="Bound">e</a><a id="683" class="Symbol">}</a> <a id="685" class="Symbol">(</a><a id="686" href="Monad.Instance.Delay.html#686" class="Bound">ambient</a> <a id="694" class="Symbol">:</a> <a id="696" href="Category.Ambient.html#1681" class="Record">Ambient</a> <a id="704" href="Monad.Instance.Delay.html#678" class="Bound">o</a> <a id="706" href="Monad.Instance.Delay.html#680" class="Bound"></a> <a id="708" href="Monad.Instance.Delay.html#682" class="Bound">e</a><a id="709" class="Symbol">)</a> <a id="711" class="Keyword">where</a>
<a id="719" class="Keyword">open</a> <a id="724" href="Category.Ambient.html#1681" class="Module">Ambient</a> <a id="732" href="Monad.Instance.Delay.html#686" class="Bound">ambient</a>
</pre>
<h2 id="definition">Definition</h2>
<p>The delay monad is usually defined as a coinductive type with two
constructors <code>now : X → D X</code> and
<code>later : D X → D X</code>, e.g. in the <a
href="https://agda.github.io/agda-stdlib/Effect.Monad.Partiality.html#1523">agda-stdlib</a></p>
<p>We will now define it categorically by existence of final coalgebras
for the functor <code>(X + -)</code> where <code>X</code> is some
object. This functor trivially sends objects <code>Y</code> to
<code>X + Y</code> and functions <code>f</code> to
<code>id + f</code>.</p>
<p>In this definition <code>D X</code> is the underlying object of the
final coalgebra given by <code>X</code>. We then use Lambeks Lemma to
gain an isomorphism <code>D X ≅ X + D X</code>, whose inverse can be
factored into the constructors <code>now</code> and
<code>later</code>.</p>
<!--
<pre class="Agda"> <a id="1425" class="Keyword">open</a> <a id="1430" class="Keyword">import</a> <a id="1437" href="Categories.Object.NaturalNumbers.Properties.F-Algebras.html" class="Module">Categories.Object.NaturalNumbers.Properties.F-Algebras</a> <a id="1492" class="Keyword">using</a> <a id="1498" class="Symbol">(</a><a id="1499" href="Categories.Object.NaturalNumbers.Properties.F-Algebras.html#9333" class="Function">PNNO⇒Initial₂</a><a id="1512" class="Symbol">;</a> <a id="1514" href="Categories.Object.NaturalNumbers.Properties.F-Algebras.html#6310" class="Function">PNNO-Algebra</a><a id="1526" class="Symbol">)</a>
<a id="1531" class="Keyword">open</a> <a id="1536" href="Category.Ambient.html#9069" class="Module">M</a> <a id="1538" href="Category.Ambient.html#1757" class="Field">C</a>
<a id="1542" class="Keyword">open</a> <a id="1547" href="Category.Ambient.html#9087" class="Module">MR</a> <a id="1550" href="Category.Ambient.html#1757" class="Field">C</a>
<a id="1554" class="Keyword">open</a> <a id="1559" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
<a id="1567" class="Keyword">open</a> <a id="1572" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="1587" class="Keyword">open</a> <a id="1592" href="Categories.Category.Construction.F-Coalgebras.html#2828" class="Module">CoLambek</a>
<a id="1603" class="Keyword">open</a> <a id="1608" href="Categories.Functor.Coalgebra.html#1350" class="Module">F-Coalgebra-Morphism</a> <a id="1629" class="Keyword">renaming</a> <a id="1638" class="Symbol">(</a><a id="1639" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="1641" class="Symbol">to</a> <a id="1644" class="Field">u</a><a id="1645" class="Symbol">)</a>
<a id="1649" class="Keyword">open</a> <a id="1654" href="Categories.Functor.Coalgebra.html#483" class="Module">F-Coalgebra</a>
</pre>-->
<pre class="Agda"> <a id="1685" class="Keyword">record</a> <a id="DelayM"></a><a id="1692" href="Monad.Instance.Delay.html#1692" class="Record">DelayM</a> <a id="1699" class="Symbol">:</a> <a id="1701" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1705" class="Symbol">(</a><a id="1706" href="Monad.Instance.Delay.html#678" class="Bound">o</a> <a id="1708" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1710" href="Monad.Instance.Delay.html#680" class="Bound"></a> <a id="1712" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1714" href="Monad.Instance.Delay.html#682" class="Bound">e</a><a id="1715" class="Symbol">)</a> <a id="1717" class="Keyword">where</a>
<a id="1727" class="Keyword">field</a>
<a id="DelayM.coalgebras"></a><a id="1739" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="1750" class="Symbol">:</a> <a id="1752" class="Symbol"></a> <a id="1754" class="Symbol">(</a><a id="1755" href="Monad.Instance.Delay.html#1755" class="Bound">A</a> <a id="1757" class="Symbol">:</a> <a id="1759" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="1762" class="Symbol">)</a> <a id="1764" class="Symbol"></a> <a id="1766" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a> <a id="1775" class="Symbol">(</a><a id="1776" href="Categories.Category.Construction.F-Coalgebras.html#598" class="Function">F-Coalgebras</a> <a id="1789" class="Symbol">(</a><a id="1790" href="Monad.Instance.Delay.html#1755" class="Bound">A</a> <a id="1792" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="1794" class="Symbol">))</a>
<a id="1802" class="Keyword">module</a> <a id="1809" href="Monad.Instance.Delay.html#1809" class="Module">_</a> <a id="1811" class="Symbol">{</a><a id="1812" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="1814" class="Symbol">:</a> <a id="1816" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="1819" class="Symbol">}</a> <a id="1821" class="Keyword">where</a>
<a id="1833" class="Keyword">open</a> <a id="1838" href="Categories.Object.Terminal.html#860" class="Module">Terminal</a> <a id="1847" class="Symbol">(</a><a id="1848" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="1859" href="Monad.Instance.Delay.html#1812" class="Bound">X</a><a id="1860" class="Symbol">)</a> <a id="1862" class="Keyword">using</a> <a id="1868" class="Symbol">(</a><a id="1869" href="Categories.Object.Terminal.html#905" class="Field"></a><a id="1870" class="Symbol">;</a> <a id="1872" href="Categories.Object.Terminal.html#577" class="Function">!</a><a id="1873" class="Symbol">;</a> <a id="1875" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a><a id="1883" class="Symbol">)</a>
<a id="1891" class="Keyword">open</a> <a id="1896" href="Categories.Functor.Coalgebra.html#483" class="Module">F-Coalgebra</a> <a id="1908" href="Categories.Object.Terminal.html#905" class="Function"></a> <a id="1910" class="Keyword">using</a> <a id="1916" class="Symbol">()</a> <a id="1919" class="Keyword">renaming</a> <a id="1928" class="Symbol">(</a><a id="1929" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="1931" class="Symbol">to</a> <a id="1934" class="Field">DX</a><a id="1936" class="Symbol">)</a> <a id="1938" class="Keyword">public</a>
<a id="1952" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a> <a id="1958" class="Symbol">:</a> <a id="1960" href="Monad.Instance.Delay.html#1934" class="Function">DX</a> <a id="1963" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="1965" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="1967" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1969" href="Monad.Instance.Delay.html#1934" class="Function">DX</a>
<a id="1978" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a> <a id="1984" class="Symbol">=</a> <a id="1986" href="Categories.Category.Construction.F-Coalgebras.html#3360" class="Function">colambek</a> <a id="1995" class="Symbol">{</a><a id="1996" class="Argument">F</a> <a id="1998" class="Symbol">=</a> <a id="2000" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="2002" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a> <a id="2005" class="Symbol">}</a> <a id="2007" class="Symbol">(</a><a id="2008" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="2019" href="Monad.Instance.Delay.html#1812" class="Bound">X</a><a id="2020" class="Symbol">)</a>
<a id="2029" class="Comment">-- note: out-≅.from ≡ .α</a>
<a id="2061" class="Keyword">open</a> <a id="2066" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a> <a id="2070" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a> <a id="2076" class="Keyword">using</a> <a id="2082" class="Symbol">()</a> <a id="2085" class="Keyword">renaming</a> <a id="2094" class="Symbol">(</a><a id="2095" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="2098" class="Symbol">to</a> <a id="2101" class="Field">out⁻¹</a><a id="2106" class="Symbol">;</a> <a id="2108" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="2113" class="Symbol">to</a> <a id="2116" class="Field">out</a><a id="2119" class="Symbol">)</a> <a id="2121" class="Keyword">public</a>
<a id="2135" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="2139" class="Symbol">:</a> <a id="2141" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="2143" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2145" href="Monad.Instance.Delay.html#1934" class="Function">DX</a>
<a id="2154" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="2158" class="Symbol">=</a> <a id="2160" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="2166" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2168" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a>
<a id="2178" href="Monad.Instance.Delay.html#2178" class="Function">later</a> <a id="2184" class="Symbol">:</a> <a id="2186" href="Monad.Instance.Delay.html#1934" class="Function">DX</a> <a id="2189" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2191" href="Monad.Instance.Delay.html#1934" class="Function">DX</a>
<a id="2200" href="Monad.Instance.Delay.html#2178" class="Function">later</a> <a id="2206" class="Symbol">=</a> <a id="2208" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="2214" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2216" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a>
<a id="2226" class="Comment">-- convenient notation</a>
<a id="2255" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="2257" class="Symbol">=</a> <a id="2259" href="Monad.Instance.Delay.html#2178" class="Function">later</a>
<a id="2272" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a> <a id="2280" class="Symbol">:</a> <a id="2282" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="2286" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2288" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="2292" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2294" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a>
<a id="2303" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a> <a id="2311" class="Symbol">=</a> <a id="2313" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="2321" class="Symbol">(</a><a id="2322" href="Categories.Morphism.html#1612" class="Function">_≅_.isoʳ</a> <a id="2331" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="2336" class="Symbol">)</a>
<a id="2345" href="Monad.Instance.Delay.html#2345" class="Function">laterlaw</a> <a id="2354" class="Symbol">:</a> <a id="2356" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="2360" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2362" href="Monad.Instance.Delay.html#2178" class="Function">later</a> <a id="2368" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2370" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a>
<a id="2379" href="Monad.Instance.Delay.html#2345" class="Function">laterlaw</a> <a id="2388" class="Symbol">=</a> <a id="2390" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="2398" class="Symbol">(</a><a id="2399" href="Categories.Morphism.html#1612" class="Function">_≅_.isoʳ</a> <a id="2408" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="2413" class="Symbol">)</a>
</pre>
<p>Since <code>Y ⇒ X + Y</code> is an algebra for the
<code>(X + -)</code> functor, we can use the final coalgebras to get a
<em>coiteration operator</em> <code>coit</code>:</p>
<!-- https://q.uiver.app/#q=WzAsNCxbMCwwLCJZIl0sWzIsMCwiWCArIFkiXSxbMCwxLCJEWCJdLFsyLDEsIlggKyBEWCJdLFswLDEsImYiXSxbMCwyLCIhID06IGNvaXQgXFw7IGYiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbMiwzLCJvdXQiXSxbMSwzLCJGISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ== -->
<iframe class="quiver-embed" src="https://q.uiver.app/#q=WzAsNCxbMCwwLCJZIl0sWzIsMCwiWCArIFkiXSxbMCwxLCJEWCJdLFsyLDEsIlggKyBEWCJdLFswLDEsImYiXSxbMCwyLCIhID06IGNvaXQgXFw7IGYiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbMiwzLCJvdXQiXSxbMSwzLCJGISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ==&amp;embed" width="490" height="304" style="border-radius: 8px; border: none;">
</iframe>
<pre class="Agda"> <a id="3254" class="Keyword">module</a> <a id="3261" href="Monad.Instance.Delay.html#3261" class="Module">_</a> <a id="3263" class="Symbol">{</a><a id="3264" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3266" class="Symbol">:</a> <a id="3268" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3271" class="Symbol">}</a> <a id="3273" class="Keyword">where</a>
<a id="3288" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3293" class="Symbol">:</a> <a id="3295" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3297" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="3299" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="3301" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3303" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3305" class="Symbol"></a> <a id="3307" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3309" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="3311" href="Monad.Instance.Delay.html#1934" class="Function">DX</a>
<a id="3322" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3327" href="Monad.Instance.Delay.html#3327" class="Bound">f</a> <a id="3329" class="Symbol">=</a> <a id="3331" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="3333" class="Symbol">(</a><a id="3334" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="3336" class="Symbol">{</a><a id="3337" class="Argument">A</a> <a id="3339" class="Symbol">=</a> <a id="3341" class="Keyword">record</a> <a id="3348" class="Symbol">{</a> <a id="3350" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="3352" class="Symbol">=</a> <a id="3354" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3356" class="Symbol">;</a> <a id="3358" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="3360" class="Symbol">=</a> <a id="3362" href="Monad.Instance.Delay.html#3327" class="Bound">f</a> <a id="3364" class="Symbol">}})</a>
<a id="3377" href="Monad.Instance.Delay.html#3377" class="Function">coit-commutes</a> <a id="3391" class="Symbol">:</a> <a id="3393" class="Symbol"></a> <a id="3395" class="Symbol">(</a><a id="3396" href="Monad.Instance.Delay.html#3396" class="Bound">f</a> <a id="3398" class="Symbol">:</a> <a id="3400" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3402" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="3404" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="3406" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3408" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a><a id="3409" class="Symbol">)</a> <a id="3411" class="Symbol"></a> <a id="3413" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="3417" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3419" class="Symbol">(</a><a id="3420" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3425" href="Monad.Instance.Delay.html#3396" class="Bound">f</a><a id="3426" class="Symbol">)</a> <a id="3428" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="3430" class="Symbol">(</a><a id="3431" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="3435" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3438" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3443" href="Monad.Instance.Delay.html#3396" class="Bound">f</a><a id="3444" class="Symbol">)</a> <a id="3446" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3448" href="Monad.Instance.Delay.html#3396" class="Bound">f</a>
<a id="3458" href="Monad.Instance.Delay.html#3377" class="Function">coit-commutes</a> <a id="3472" href="Monad.Instance.Delay.html#3472" class="Bound">f</a> <a id="3474" class="Symbol">=</a> <a id="3476" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="3485" class="Symbol">(</a><a id="3486" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="3488" class="Symbol">{</a><a id="3489" class="Argument">A</a> <a id="3491" class="Symbol">=</a> <a id="3493" class="Keyword">record</a> <a id="3500" class="Symbol">{</a> <a id="3502" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="3504" class="Symbol">=</a> <a id="3506" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3508" class="Symbol">;</a> <a id="3510" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="3512" class="Symbol">=</a> <a id="3514" href="Monad.Instance.Delay.html#3472" class="Bound">f</a> <a id="3516" class="Symbol">}})</a>
<a id="3529" href="Monad.Instance.Delay.html#3529" class="Function">coit-resp-≈</a> <a id="3541" class="Symbol">:</a> <a id="3543" class="Symbol"></a> <a id="3545" class="Symbol">{</a><a id="3546" href="Monad.Instance.Delay.html#3546" class="Bound">f</a> <a id="3548" href="Monad.Instance.Delay.html#3548" class="Bound">g</a> <a id="3550" class="Symbol">:</a> <a id="3552" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a> <a id="3554" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="3556" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="3558" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3560" href="Monad.Instance.Delay.html#3264" class="Bound">Y</a><a id="3561" class="Symbol">}</a> <a id="3563" class="Symbol"></a> <a id="3565" href="Monad.Instance.Delay.html#3546" class="Bound">f</a> <a id="3567" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="3569" href="Monad.Instance.Delay.html#3548" class="Bound">g</a> <a id="3571" class="Symbol"></a> <a id="3573" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3578" href="Monad.Instance.Delay.html#3546" class="Bound">f</a> <a id="3580" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="3582" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3587" href="Monad.Instance.Delay.html#3548" class="Bound">g</a>
<a id="3597" href="Monad.Instance.Delay.html#3529" class="Function">coit-resp-≈</a> <a id="3609" class="Symbol">{</a><a id="3610" href="Monad.Instance.Delay.html#3610" class="Bound">f</a><a id="3611" class="Symbol">}</a> <a id="3613" class="Symbol">{</a><a id="3614" href="Monad.Instance.Delay.html#3614" class="Bound">g</a><a id="3615" class="Symbol">}</a> <a id="3617" href="Monad.Instance.Delay.html#3617" class="Bound">eq</a> <a id="3620" class="Symbol">=</a> <a id="3622" href="Categories.Object.Terminal.html#605" class="Function">Terminal.!-unique</a> <a id="3640" class="Symbol">(</a><a id="3641" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="3652" href="Monad.Instance.Delay.html#1812" class="Bound">X</a><a id="3653" class="Symbol">)</a> <a id="3655" class="Symbol">(</a><a id="3656" class="Keyword">record</a> <a id="3663" class="Symbol">{</a> <a id="3665" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="3667" class="Symbol">=</a> <a id="3669" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3674" href="Monad.Instance.Delay.html#3614" class="Bound">g</a> <a id="3676" class="Symbol">;</a> <a id="3678" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="3687" class="Symbol">=</a> <a id="3689" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3706" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="3710" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3712" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3717" href="Monad.Instance.Delay.html#3614" class="Bound">g</a> <a id="3719" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3722" href="Monad.Instance.Delay.html#3377" class="Function">coit-commutes</a> <a id="3736" href="Monad.Instance.Delay.html#3614" class="Bound">g</a> <a id="3738" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3751" class="Symbol">(</a><a id="3752" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="3756" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3759" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3764" href="Monad.Instance.Delay.html#3614" class="Bound">g</a><a id="3765" class="Symbol">)</a> <a id="3767" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3769" href="Monad.Instance.Delay.html#3614" class="Bound">g</a> <a id="3771" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3774" class="Symbol">(</a><a id="3775" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="3783" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="3787" href="Monad.Instance.Delay.html#3617" class="Bound">eq</a><a id="3789" class="Symbol">)</a> <a id="3791" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3804" class="Symbol">(</a><a id="3805" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="3809" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3812" href="Monad.Instance.Delay.html#3288" class="Function">coit</a> <a id="3817" href="Monad.Instance.Delay.html#3614" class="Bound">g</a><a id="3818" class="Symbol">)</a> <a id="3820" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3822" href="Monad.Instance.Delay.html#3610" class="Bound">f</a> <a id="3824" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="3826" class="Symbol">})</a>
</pre>
<p>Furthermore if we combine the internal algebra structure of
Parametrized NNOs with Lambeks lemma, we get the isomorphism
<code>X × N ≅ X + X × N</code>. At the same time the morphism
<code>X × N ⇒ X + X × N</code> is a coalgebra for the
<code>(Y + \_)</code>-functor defined above, this gives us another
morphism <code>ι : X × N ⇒ DX</code> by using the final coalgebras.</p>
<!-- https://q.uiver.app/#q=WzAsNCxbMCwwLCJYIFxcdGltZXMgXFxtYXRoYmJ7Tn0iXSxbMiwwLCJYICsgKFggXFx0aW1lcyBcXG1hdGhiYntOfSkiXSxbMCwxLCJEIFgiXSxbMiwxLCJYICsgRCBYIl0sWzAsMSwi4omFIl0sWzAsMiwiISA9OiBcXGlvdGEiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbMiwzLCJvdXQiXSxbMSwzLCJGIFxcaW90YSIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ== -->
<iframe class="quiver-embed" src="https://q.uiver.app/#q=WzAsNCxbMCwwLCJYIFxcdGltZXMgXFxtYXRoYmJ7Tn0iXSxbMiwwLCJYICsgKFggXFx0aW1lcyBcXG1hdGhiYntOfSkiXSxbMCwxLCJEIFgiXSxbMiwxLCJYICsgRCBYIl0sWzAsMSwi4omFIl0sWzAsMiwiISA9OiBcXGlvdGEiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbMiwzLCJvdXQiXSxbMSwzLCJGIFxcaW90YSIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ==&amp;embed" width="575" height="304" style="border-radius: 8px; border: none;">
</iframe>
<pre class="Agda"> <a id="4993" href="Monad.Instance.Delay.html#4993" class="Function">nno-iso</a> <a id="5001" class="Symbol">:</a> <a id="5003" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5005" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="5007" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a> <a id="5009" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="5011" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5013" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="5015" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5017" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="5019" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a>
<a id="5027" href="Monad.Instance.Delay.html#4993" class="Function">nno-iso</a> <a id="5035" class="Symbol">=</a> <a id="5037" href="Categories.Category.Construction.F-Algebras.html#2829" class="Function">Lambek.lambek</a> <a id="5051" class="Symbol">(</a><a id="5052" class="Keyword">record</a> <a id="5059" class="Symbol">{</a> <a id="5061" href="Categories.Object.Initial.html#804" class="Field"></a> <a id="5063" class="Symbol">=</a> <a id="5065" href="Categories.Object.NaturalNumbers.Properties.F-Algebras.html#6310" class="Function">PNNO-Algebra</a> <a id="5078" href="Category.Ambient.html#1969" class="Function">cartesianCategory</a> <a id="5096" href="Categories.Category.Cocartesian.html#3462" class="Function">coproducts</a> <a id="5107" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5109" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a> <a id="5111" href="Categories.Object.NaturalNumbers.Parametrized.html#960" class="Function">z</a> <a id="5113" href="Categories.Object.NaturalNumbers.Parametrized.html#974" class="Function">s</a> <a id="5115" class="Symbol">;</a> <a id="5117" href="Categories.Object.Initial.html#816" class="Field">⊥-is-initial</a> <a id="5130" class="Symbol">=</a> <a id="5132" href="Categories.Object.NaturalNumbers.Properties.F-Algebras.html#9333" class="Function">PNNO⇒Initial₂</a> <a id="5146" href="Category.Ambient.html#1969" class="Function">cartesianCategory</a> <a id="5164" href="Categories.Category.Cocartesian.html#3462" class="Function">coproducts</a> <a id="5175" href="Category.Ambient.html#1842" class="Field"></a> <a id="5177" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5179" class="Symbol">})</a>
<a id="5189" href="Monad.Instance.Delay.html#5189" class="Function">ι-coalg</a> <a id="5197" class="Symbol">:</a> <a id="5199" href="Categories.Functor.Coalgebra.html#1350" class="Record">F-Coalgebra-Morphism</a> <a id="5220" class="Symbol">(</a><a id="5221" class="Keyword">record</a> <a id="5228" class="Symbol">{</a> <a id="5230" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="5232" class="Symbol">=</a> <a id="5234" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5236" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="5238" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a> <a id="5240" class="Symbol">;</a> <a id="5242" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="5244" class="Symbol">=</a> <a id="5246" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="5255" href="Monad.Instance.Delay.html#4993" class="Function">nno-iso</a> <a id="5263" class="Symbol">})</a> <a id="5266" class="Symbol">(</a><a id="5267" class="Keyword">record</a> <a id="5274" class="Symbol">{</a> <a id="5276" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="5278" class="Symbol">=</a> <a id="5280" href="Monad.Instance.Delay.html#1934" class="Function">DX</a> <a id="5283" class="Symbol">;</a> <a id="5285" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="5287" class="Symbol">=</a> <a id="5289" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="5293" class="Symbol">})</a>
<a id="5302" href="Monad.Instance.Delay.html#5189" class="Function">ι-coalg</a> <a id="5310" class="Symbol">=</a> <a id="5312" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="5314" class="Symbol">{</a><a id="5315" class="Argument">A</a> <a id="5317" class="Symbol">=</a> <a id="5319" class="Keyword">record</a> <a id="5326" class="Symbol">{</a> <a id="5328" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="5330" class="Symbol">=</a> <a id="5332" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5334" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="5336" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a> <a id="5338" class="Symbol">;</a> <a id="5340" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="5342" class="Symbol">=</a> <a id="5344" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="5353" href="Monad.Instance.Delay.html#4993" class="Function">nno-iso</a> <a id="5361" class="Symbol">}}</a>
<a id="5371" href="Monad.Instance.Delay.html#5371" class="Function">ι</a> <a id="5373" class="Symbol">:</a> <a id="5375" href="Monad.Instance.Delay.html#1812" class="Bound">X</a> <a id="5377" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="5379" href="Categories.Object.NaturalNumbers.Parametrized.html#2928" class="Function">N</a> <a id="5381" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="5383" href="Monad.Instance.Delay.html#1934" class="Function">DX</a>
<a id="5392" href="Monad.Instance.Delay.html#5371" class="Function">ι</a> <a id="5394" class="Symbol">=</a> <a id="5396" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="5398" href="Monad.Instance.Delay.html#5189" class="Function">ι-coalg</a>
<a id="5413" href="Monad.Instance.Delay.html#5413" class="Function">ι-commutes</a> <a id="5424" class="Symbol">:</a> <a id="5426" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="5430" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5432" href="Monad.Instance.Delay.html#5371" class="Function">ι</a> <a id="5434" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="5436" class="Symbol">(</a><a id="5437" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="5441" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5444" href="Monad.Instance.Delay.html#5371" class="Function">ι</a><a id="5445" class="Symbol">)</a> <a id="5447" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5449" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="5458" href="Monad.Instance.Delay.html#4993" class="Function">nno-iso</a>
<a id="5472" href="Monad.Instance.Delay.html#5413" class="Function">ι-commutes</a> <a id="5483" class="Symbol">=</a> <a id="5485" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="5494" href="Monad.Instance.Delay.html#5189" class="Function">ι-coalg</a>
</pre>
<h2 id="delay-is-a-monad">Delay is a monad</h2>
<p>The next step is showing that this actually yields a monad. Some
parts for this are already given, we can construct <code>D X</code> from
<code>X</code> and <code>now : D X ⇒ D X</code> is the monad unit.
Whats missing is Kleisli-lifting, given a morphism
<code>f : X ⇒ D Y</code> we need to construct a morphism
<code>extend f : D X ⇒ D Y</code>. To do so we go from <code>D X</code>
to <code>D X + D Y</code> via injection and then construct a coalgebra
<code>D X + D Y ⇒ Y + (D X + D Y)</code>, the final coalgebra
<code>D Y ⇒ Y + D Y</code> then yields a coalgebra-morphism from
<code>D X + D Y</code> to <code>D Y</code>, see the following
diagram:</p>
<!-- https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWCArIERZIl0sWzIsMSwiWSArIChEWCArIERZKSJdLFswLDAsIkRYIl0sWzAsMiwiRFkiXSxbMiwyLCJZICsgRFkiXSxbMCwxLCJcXGFscGhhIl0sWzIsMCwiaV8xIl0sWzAsMywiISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFszLDQsIm91dCJdLFsxLDQsIkYgISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ== -->
<iframe class="quiver-embed" src="https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWCArIERZIl0sWzIsMSwiWSArIChEWCArIERZKSJdLFswLDAsIkRYIl0sWzAsMiwiRFkiXSxbMiwyLCJZICsgRFkiXSxbMCwxLCJcXGFscGhhIl0sWzIsMCwiaV8xIl0sWzAsMywiISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFszLDQsIm91dCJdLFsxLDQsIkYgISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ==&amp;embed" width="551" height="304" style="border-radius: 8px; border: none;">
</iframe>
<p>Proving the monad laws then requires two key lemmas, first of all
that the following diagram commutes for any <code>f</code> (this is
<code>extendlaw</code>)</p>
<!-- https://q.uiver.app/#q=WzAsNCxbMCwwLCJEWCJdLFszLDAsIkRZIl0sWzAsMSwiWCArIERYIl0sWzMsMSwiWSArIERZIl0sWzAsMSwiZXh0ZW5kXFw7ZiJdLFswLDIsIm91dCIsMl0sWzIsMywiW291dFxcO2YsaV8yXFw7KGV4dGVuZFxcO2YpXSIsMl0sWzEsMywib3V0Il1d -->
<iframe class="quiver-embed" src="https://q.uiver.app/#q=WzAsNCxbMCwwLCJEWCJdLFszLDAsIkRZIl0sWzAsMSwiWCArIERYIl0sWzMsMSwiWSArIERZIl0sWzAsMSwiZXh0ZW5kXFw7ZiJdLFswLDIsIm91dCIsMl0sWzIsMywiW291dFxcO2YsaV8yXFw7KGV4dGVuZFxcO2YpXSIsMl0sWzEsMywib3V0Il1d&amp;embed" width="670" height="304" style="border-radius: 8px; border: none;">
</iframe>
<p>and second that <code>extend f</code> is the unique morphism
satisfying the commutative diagram i.e. any other morphism for which the
diagram commutes must be equivalent to <code>extend f</code> (this is
<code>extend-unique</code>).</p>
<pre class="Agda"> <a id="7734" class="Comment">-- Make DX more accessible outside</a>
<a id="DelayM.D₀"></a><a id="7773" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="7776" class="Symbol">:</a> <a id="7778" href="Categories.Category.Core.html#559" class="Function">Obj</a> <a id="7782" class="Symbol"></a> <a id="7784" href="Categories.Category.Core.html#559" class="Function">Obj</a>
<a id="7792" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="7795" href="Monad.Instance.Delay.html#7795" class="Bound">X</a> <a id="7797" class="Symbol">=</a> <a id="7799" href="Monad.Instance.Delay.html#1934" class="Function">DX</a> <a id="7802" class="Symbol">{</a><a id="7803" href="Monad.Instance.Delay.html#7795" class="Bound">X</a><a id="7804" class="Symbol">}</a>
<a id="7811" class="Keyword">module</a> <a id="7818" href="Monad.Instance.Delay.html#7818" class="Module">_</a> <a id="7820" class="Symbol">{</a><a id="7821" href="Monad.Instance.Delay.html#7821" class="Bound">X</a> <a id="7823" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a> <a id="7825" class="Symbol">:</a> <a id="7827" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="7830" class="Symbol">}</a> <a id="7832" class="Symbol">(</a><a id="7833" href="Monad.Instance.Delay.html#7833" class="Bound">f</a> <a id="7835" class="Symbol">:</a> <a id="7837" href="Monad.Instance.Delay.html#7821" class="Bound">X</a> <a id="7839" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="7841" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="7844" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="7845" class="Symbol">)</a> <a id="7847" class="Keyword">where</a>
<a id="7859" class="Keyword">open</a> <a id="7864" href="Categories.Object.Terminal.html#860" class="Module">Terminal</a>
<a id="7879" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="7883" class="Symbol">:</a> <a id="7885" href="Categories.Functor.Coalgebra.html#483" class="Record">F-Coalgebra</a> <a id="7897" class="Symbol">(</a><a id="7898" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a> <a id="7900" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="7902" class="Symbol">)</a>
<a id="7910" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="7914" class="Symbol">=</a> <a id="7916" class="Keyword">record</a> <a id="7923" class="Symbol">{</a> <a id="7925" href="Categories.Functor.Coalgebra.html#571" class="Field">A</a> <a id="7927" class="Symbol">=</a> <a id="7929" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="7932" href="Monad.Instance.Delay.html#7821" class="Bound">X</a> <a id="7934" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="7936" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="7939" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a> <a id="7941" class="Symbol">;</a> <a id="7943" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="7945" class="Symbol">=</a> <a id="7947" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7949" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7951" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7953" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7956" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7958" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7961" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7963" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7966" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7968" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7970" class="Symbol">(</a><a id="7971" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="7975" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7977" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="7978" class="Symbol">)</a> <a id="7980" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7982" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7985" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7987" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7990" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7992" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7994" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="7998" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8000" class="Symbol">(</a><a id="8001" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8005" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8008" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="8010" class="Symbol">)</a> <a id="8012" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8014" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8018" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8020" class="Symbol">}</a>
<a id="8028" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="8036" class="Symbol">:</a> <a id="8038" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="8041" href="Monad.Instance.Delay.html#7821" class="Bound">X</a> <a id="8043" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="8045" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="8048" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a>
<a id="8056" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="8064" class="Symbol">=</a> <a id="8066" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8068" class="Symbol">(</a><a id="8069" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8071" class="Symbol">(</a><a id="8072" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8083" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8084" class="Symbol">)</a> <a id="8086" class="Symbol">{</a><a id="8087" class="Argument">A</a> <a id="8089" class="Symbol">=</a> <a id="8091" href="Monad.Instance.Delay.html#7879" class="Function">alg</a><a id="8094" class="Symbol">})</a> <a id="8097" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8099" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8102" class="Symbol">{</a><a id="8103" class="Argument">B</a> <a id="8105" class="Symbol">=</a> <a id="8107" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="8110" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8111" class="Symbol">}</a>
<a id="8120" href="Monad.Instance.Delay.html#8120" class="Function">!∘i₂</a> <a id="8125" class="Symbol">:</a> <a id="8127" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8129" class="Symbol">(</a><a id="8130" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8132" class="Symbol">(</a><a id="8133" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8144" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8145" class="Symbol">)</a> <a id="8147" class="Symbol">{</a><a id="8148" class="Argument">A</a> <a id="8150" class="Symbol">=</a> <a id="8152" href="Monad.Instance.Delay.html#7879" class="Function">alg</a><a id="8155" class="Symbol">})</a> <a id="8158" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8160" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8163" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="8165" href="Category.Ambient.html#2115" class="Function">idC</a>
<a id="8175" href="Monad.Instance.Delay.html#8120" class="Function">!∘i₂</a> <a id="8180" class="Symbol">=</a> <a id="8182" href="Categories.Object.Terminal.html#803" class="Function">-id</a> <a id="8187" class="Symbol">(</a><a id="8188" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8199" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8200" class="Symbol">)</a> <a id="8202" class="Symbol">(</a><a id="8203" href="Categories.Category.Construction.F-Coalgebras.html#598" class="Function">F-Coalgebras</a> <a id="8216" class="Symbol">(</a><a id="8217" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a> <a id="8219" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="8221" class="Symbol">)</a> <a id="8223" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="8225" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8227" class="Symbol">(</a><a id="8228" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8239" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8240" class="Symbol">)</a> <a id="8242" href="Categories.Category.html#700" class="Function Operator"></a> <a id="8244" class="Keyword">record</a> <a id="8251" class="Symbol">{</a> <a id="8253" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="8255" class="Symbol">=</a> <a id="8257" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8260" class="Symbol">;</a> <a id="8262" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="8271" class="Symbol">=</a> <a id="8273" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a> <a id="8281" class="Symbol">}</a> <a id="8283" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="8285" class="Symbol">)</a>
<a id="8294" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="8304" class="Symbol">:</a> <a id="8306" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8310" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8312" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="8320" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="8322" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8324" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8328" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8330" href="Monad.Instance.Delay.html#7833" class="Bound">f</a> <a id="8332" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8334" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8337" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8339" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="8347" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8349" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8351" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="8361" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="8371" class="Symbol">=</a> <a id="8373" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="8388" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8392" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8394" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="8402" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8405" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8411" class="Symbol">(</a><a id="8412" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="8421" class="Symbol">(</a><a id="8422" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8424" class="Symbol">(</a><a id="8425" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8436" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8437" class="Symbol">)</a> <a id="8439" class="Symbol">{</a><a id="8440" class="Argument">A</a> <a id="8442" class="Symbol">=</a> <a id="8444" href="Monad.Instance.Delay.html#7879" class="Function">alg</a><a id="8447" class="Symbol">}))</a> <a id="8451" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8462" class="Symbol">((</a><a id="8464" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8468" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8471" class="Symbol">(</a><a id="8472" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8474" class="Symbol">(</a><a id="8475" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8477" class="Symbol">(</a><a id="8478" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8489" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8490" class="Symbol">))))</a> <a id="8495" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8497" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="8499" href="Monad.Instance.Delay.html#7879" class="Function">alg</a><a id="8502" class="Symbol">)</a> <a id="8504" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8506" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8516" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8519" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8525" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a> <a id="8533" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8543" class="Symbol">(</a><a id="8544" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8548" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8551" class="Symbol">(</a><a id="8552" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8554" class="Symbol">(</a><a id="8555" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8557" class="Symbol">(</a><a id="8558" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8569" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8570" class="Symbol">))))</a> <a id="8575" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8577" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8579" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8581" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8584" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8586" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8589" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8591" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8594" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a>
<a id="8605" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8607" class="Symbol">(</a><a id="8608" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8612" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8614" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="8615" class="Symbol">)</a> <a id="8617" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8619" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8622" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8624" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8627" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8629" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8631" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8653" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8656" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8662" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="8666" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8676" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8678" class="Symbol">(</a><a id="8679" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8683" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8686" class="Symbol">(</a><a id="8687" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8689" class="Symbol">(</a><a id="8690" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8692" class="Symbol">(</a><a id="8693" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8704" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8705" class="Symbol">))))</a> <a id="8710" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8712" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8714" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8717" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8719" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8722" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8724" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8727" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8729" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8731" class="Symbol">(</a><a id="8732" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8736" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8738" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="8739" class="Symbol">)</a>
<a id="8750" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8752" class="Symbol">(</a><a id="8753" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8757" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8760" class="Symbol">(</a><a id="8761" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8763" class="Symbol">(</a><a id="8764" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8766" class="Symbol">(</a><a id="8767" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8778" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8779" class="Symbol">))))</a> <a id="8784" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8786" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8789" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8791" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="8794" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8796" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8798" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8802" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8805" class="Symbol">(</a><a id="8806" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="8815" class="Symbol">(</a><a id="8816" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8822" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="8825" class="Symbol">)</a> <a id="8827" class="Symbol">(</a><a id="8828" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8834" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="8839" class="Symbol">))</a> <a id="8842" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="8850" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8860" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8862" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="8864" class="Symbol">(</a><a id="8865" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8869" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8872" class="Symbol">(</a><a id="8873" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8875" class="Symbol">(</a><a id="8876" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8878" class="Symbol">(</a><a id="8879" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8890" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8891" class="Symbol">))))</a> <a id="8896" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8898" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a>
<a id="8912" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8914" class="Symbol">(</a><a id="8915" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="8919" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8922" class="Symbol">(</a><a id="8923" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8925" class="Symbol">(</a><a id="8926" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8928" class="Symbol">(</a><a id="8929" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="8940" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="8941" class="Symbol">))))</a> <a id="8946" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8948" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8951" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8953" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8956" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="8958" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8960" class="Symbol">(</a><a id="8961" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="8965" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8967" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="8968" class="Symbol">)</a>
<a id="8979" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="8981" class="Symbol">(</a><a id="8982" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="8985" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8987" class="Symbol">(</a><a id="8988" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="8990" class="Symbol">(</a><a id="8991" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="8993" class="Symbol">(</a><a id="8994" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="9005" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="9006" class="Symbol">))))</a> <a id="9011" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9013" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="9016" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9018" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9020" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9031" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9034" class="Symbol">(</a><a id="9035" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="9109" class="Symbol">((</a><a id="9111" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="9120" href="Categories.Category.Cocartesian.html#2548" class="Function">+₁∘i₁</a> <a id="9126" class="Symbol">(</a><a id="9127" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9133" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="9138" class="Symbol">))</a> <a id="9141" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="9148" class="Symbol">)</a>
<a id="9215" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="9219" class="Symbol">)</a> <a id="9221" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9229" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9239" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9241" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9243" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="9246" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9248" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9252" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9254" class="Symbol">(</a><a id="9255" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9258" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9260" class="Symbol">(</a><a id="9261" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="9263" class="Symbol">(</a><a id="9264" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="9266" class="Symbol">(</a><a id="9267" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="9278" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="9279" class="Symbol">))))</a> <a id="9284" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9286" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9289" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9291" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9293" class="Symbol">(</a><a id="9294" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9298" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9300" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="9301" class="Symbol">)</a>
<a id="9312" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9314" class="Symbol">(</a><a id="9315" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9318" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9320" class="Symbol">(</a><a id="9321" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="9323" class="Symbol">(</a><a id="9324" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="9326" class="Symbol">(</a><a id="9327" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="9338" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="9339" class="Symbol">))))</a> <a id="9344" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9346" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="9349" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9351" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9353" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9364" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9367" class="Symbol">(</a><a id="9368" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="9442" class="Symbol">(</a><a id="9443" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="9449" class="Symbol">((</a><a id="9451" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="9460" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="9470" class="Symbol">(</a><a id="9471" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="9479" href="Monad.Instance.Delay.html#8120" class="Function">!∘i₂</a><a id="9483" class="Symbol">))</a> <a id="9486" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="9488" href="Categories.Category.Cocartesian.html#1729" class="Function">+-η</a><a id="9491" class="Symbol">))</a>
<a id="9558" href="Categories.Category.Core.html#715" class="Function">assoc</a><a id="9563" class="Symbol">)</a> <a id="9565" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9573" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9583" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9585" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9589" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9591" href="Monad.Instance.Delay.html#7833" class="Bound">f</a> <a id="9593" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9595" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9598" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9600" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="9608" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9610" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9612" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9632" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="9642" href="Monad.Instance.Delay.html#9642" class="Function">extend&#39;-unique</a> <a id="9657" class="Symbol">:</a> <a id="9659" class="Symbol">(</a><a id="9660" href="Monad.Instance.Delay.html#9660" class="Bound">g</a> <a id="9662" class="Symbol">:</a> <a id="9664" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="9667" href="Monad.Instance.Delay.html#7821" class="Bound">X</a> <a id="9669" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="9671" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="9674" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="9675" class="Symbol">)</a> <a id="9677" class="Symbol"></a> <a id="9679" class="Symbol">(</a><a id="9680" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9684" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9686" href="Monad.Instance.Delay.html#9660" class="Bound">g</a> <a id="9688" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="9690" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9692" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9696" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9698" href="Monad.Instance.Delay.html#7833" class="Bound">f</a> <a id="9700" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9702" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="9705" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9707" href="Monad.Instance.Delay.html#9660" class="Bound">g</a> <a id="9709" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9711" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9713" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="9716" class="Symbol">)</a> <a id="9718" class="Symbol"></a> <a id="9720" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="9728" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="9730" href="Monad.Instance.Delay.html#9660" class="Bound">g</a>
<a id="9738" href="Monad.Instance.Delay.html#9642" class="Function">extend&#39;-unique</a> <a id="9753" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="9755" href="Monad.Instance.Delay.html#9755" class="Bound">g-commutes</a> <a id="9766" class="Symbol">=</a> <a id="9768" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="9783" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="9791" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9794" class="Symbol">(</a><a id="9795" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="9804" class="Symbol">(</a><a id="9805" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="9816" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a><a id="9817" class="Symbol">)</a> <a id="9819" class="Symbol">(</a><a id="9820" class="Keyword">record</a> <a id="9827" class="Symbol">{</a> <a id="9829" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="9831" class="Symbol">=</a> <a id="9833" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9835" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="9837" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9839" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9843" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9845" class="Symbol">;</a> <a id="9847" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="9856" class="Symbol">=</a> <a id="9858" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="9875" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9879" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9881" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9883" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="9885" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9887" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9891" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="9934" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9937" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="9941" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9954" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="9956" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9960" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9962" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="9964" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="9966" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="9970" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="9972" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9976" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10011" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10014" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="10023" href="Monad.Instance.Delay.html#9755" class="Bound">g-commutes</a> <a id="10034" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="10044" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10057" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10059" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10061" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="10065" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10067" href="Monad.Instance.Delay.html#7833" class="Bound">f</a> <a id="10069" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10071" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="10074" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10076" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="10078" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10080" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10082" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="10086" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10088" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="10092" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10112" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="10116" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="10202" class="Symbol">((</a><a id="10204" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="10292" class="Symbol">((</a><a id="10294" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="10303" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="10308" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="10317" class="Symbol">)</a> <a id="10319" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="10327" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="10329" class="Symbol">(</a><a id="10330" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="10336" href="Categories.Category.Cocartesian.html#1729" class="Function">+-η</a><a id="10339" class="Symbol">))</a>
<a id="10421" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="10425" class="Symbol">)</a>
<a id="10504" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="10511" class="Symbol">)</a>
<a id="10590" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="10595" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="10608" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10610" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10612" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="10614" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="10617" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10619" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="10622" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10624" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="10628" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10630" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10632" class="Symbol">(</a><a id="10633" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="10637" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10639" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="10640" class="Symbol">)</a>
<a id="10655" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10657" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="10660" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10662" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="10664" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10666" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="10668" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="10683" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="10685" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="10689" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="10742" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="10746" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="10832" class="Symbol">((</a><a id="10834" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="10922" class="Symbol">((</a><a id="10924" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="10933" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="10943" class="Symbol">(</a><a id="10944" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="10950" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="10957" class="Symbol">))</a> <a id="10960" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="10967" class="Symbol">)</a>
<a id="11048" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="11052" class="Symbol">)</a>
<a id="11131" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="11138" class="Symbol">)</a>
<a id="11217" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="11297" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="11309" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="11311" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="11313" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="11315" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="11318" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11320" href="Category.Ambient.html#2115" class="Function">idC</a>
<a id="11339" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="11341" class="Symbol">(</a><a id="11342" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="11345" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11347" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="11349" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="11351" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="11353" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11357" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="11358" class="Symbol">)</a> <a id="11360" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11362" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="11365" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="11367" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11369" class="Symbol">(</a><a id="11370" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="11374" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11376" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="11377" class="Symbol">)</a>
<a id="11392" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="11394" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="11397" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11399" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="11401" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="11403" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="11405" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="11420" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="11422" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="11426" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="11479" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="11483" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="11569" class="Symbol">((</a><a id="11571" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="11659" class="Symbol">((</a><a id="11661" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="11670" href="Categories.Category.Cocartesian.html#2548" class="Function">+₁∘i₁</a> <a id="11676" class="Symbol">(</a><a id="11677" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="11683" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="11688" class="Symbol">))</a> <a id="11691" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="11698" class="Symbol">)</a>
<a id="11779" class="Symbol">(</a><a id="11780" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="11786" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a><a id="11793" class="Symbol">))</a>
<a id="11873" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="11880" class="Symbol">)</a>
<a id="11959" class="Symbol">(</a><a id="11960" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="11966" class="Symbol">(</a><a id="11967" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="11984" class="Symbol">(</a><a id="11985" href="Monad.Instance.Delay.html#7823" class="Bound">Y</a> <a id="11987" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="11989" class="Symbol">)))</a>
<a id="12068" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="12080" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12082" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12084" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12086" class="Symbol">(</a><a id="12087" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12091" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12094" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12096" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12098" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12100" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12104" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12105" class="Symbol">)</a> <a id="12107" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12109" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a>
<a id="12127" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12129" class="Symbol">(</a><a id="12130" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12134" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12137" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12139" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12141" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12143" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12147" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12148" class="Symbol">)</a> <a id="12150" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12152" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12155" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12157" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12160" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12162" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12164" class="Symbol">(</a><a id="12165" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12169" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12171" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="12172" class="Symbol">)</a>
<a id="12187" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12189" class="Symbol">(</a><a id="12190" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12193" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12195" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12197" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12199" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12201" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12205" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12206" class="Symbol">)</a> <a id="12208" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12210" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="12213" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12215" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12217" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="12232" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12234" class="Symbol">(</a><a id="12235" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12239" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12242" href="Category.Ambient.html#2115" class="Function">idC</a><a id="12245" class="Symbol">)</a> <a id="12247" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12249" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12253" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12291" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="12295" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="12381" class="Symbol">((</a><a id="12383" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="12392" class="Symbol">(</a><a id="12393" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="12399" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="12402" class="Symbol">)</a> <a id="12404" class="Symbol">(</a><a id="12405" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="12411" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="12416" class="Symbol">))</a> <a id="12419" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="12426" class="Symbol">)</a>
<a id="12505" class="Symbol">((</a><a id="12507" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="12516" href="Categories.Category.Core.html#1339" class="Function">identity²</a> <a id="12526" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="12533" class="Symbol">)</a> <a id="12535" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="12542" class="Symbol">)</a> <a id="12544" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="12556" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12558" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12560" class="Symbol">(</a><a id="12561" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12565" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12568" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12570" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12572" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12574" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12578" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12579" class="Symbol">)</a> <a id="12581" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12583" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12585" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="12588" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12590" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12593" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12595" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12598" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12600" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12602" class="Symbol">(</a><a id="12603" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12607" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12609" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="12610" class="Symbol">)</a>
<a id="12625" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12627" class="Symbol">(</a><a id="12628" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12632" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12635" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12637" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12639" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12641" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12645" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12646" class="Symbol">)</a> <a id="12648" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12650" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12653" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12655" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="12658" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12660" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12662" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="12677" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12679" class="Symbol">(</a><a id="12680" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12684" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12686" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12690" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12693" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12695" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12697" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12699" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12703" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12705" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12707" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="12709" class="Symbol">)</a> <a id="12711" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12713" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12717" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12736" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="12740" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="12749" class="Symbol">(</a><a id="12750" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="12756" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="12759" class="Symbol">)</a> <a id="12761" class="Symbol">(</a><a id="12762" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="12768" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a><a id="12773" class="Symbol">)</a> <a id="12775" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="12787" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12789" class="Symbol">(</a><a id="12790" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12794" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12797" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12799" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12801" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12803" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12807" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12808" class="Symbol">)</a> <a id="12810" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12812" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12814" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12816" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="12819" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12821" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12824" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12826" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12829" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12831" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12833" class="Symbol">(</a><a id="12834" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12838" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12840" href="Monad.Instance.Delay.html#7833" class="Bound">f</a><a id="12841" class="Symbol">)</a> <a id="12843" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12845" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="12848" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12850" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="12853" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12855" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12857" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="12872" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12874" class="Symbol">(</a><a id="12875" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12879" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12882" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12884" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12886" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12888" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12892" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12893" class="Symbol">)</a> <a id="12895" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12897" class="Symbol">(</a><a id="12898" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12902" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12905" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="12907" class="Symbol">)</a> <a id="12909" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12911" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="12915" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="12931" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="12935" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="12939" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="12951" class="Symbol">(</a><a id="12952" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12956" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12959" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="12961" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="12963" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="12965" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12969" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="12970" class="Symbol">)</a> <a id="12972" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="12974" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="12976" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="12980" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="12982" class="Symbol">}))</a> <a id="12986" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="12994" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="13005" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13007" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="13009" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13011" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13015" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13017" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13019" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="13068" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13071" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a> <a id="13079" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="13089" href="Monad.Instance.Delay.html#9753" class="Bound">g</a> <a id="13091" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="13098" class="Comment">-- Lemma 39: ▷ ∘ f* ≈ (▷ ∘ f)* ≈ f* ∘ ▷</a>
<a id="13143" class="Keyword">module</a> <a id="13150" href="Monad.Instance.Delay.html#13150" class="Module">_</a> <a id="13152" class="Symbol">{</a><a id="13153" href="Monad.Instance.Delay.html#13153" class="Bound">X</a> <a id="13155" href="Monad.Instance.Delay.html#13155" class="Bound">Y</a><a id="13156" class="Symbol">}</a> <a id="13158" class="Symbol">(</a><a id="13159" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13161" class="Symbol">:</a> <a id="13163" href="Monad.Instance.Delay.html#13153" class="Bound">X</a> <a id="13165" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="13167" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="13170" href="Monad.Instance.Delay.html#13155" class="Bound">Y</a><a id="13171" class="Symbol">)</a> <a id="13173" class="Keyword">where</a>
<a id="13185" class="Keyword">private</a>
<a id="13203" href="Monad.Instance.Delay.html#13203" class="Function">helper</a> <a id="13210" class="Symbol">:</a> <a id="13212" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13216" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13218" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13220" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13222" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13224" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13232" class="Symbol">(</a><a id="13233" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13235" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13237" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13238" class="Symbol">)</a> <a id="13240" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13242" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13244" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13248" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="13250" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13252" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13256" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13258" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13260" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13262" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="13265" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13267" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13269" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13271" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13273" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13281" class="Symbol">(</a><a id="13282" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13284" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13286" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13287" class="Symbol">)</a> <a id="13289" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13291" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13293" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13297" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13299" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13301" href="Monad.Instance.Delay.html#2116" class="Function">out</a>
<a id="13315" href="Monad.Instance.Delay.html#13203" class="Function">helper</a> <a id="13322" class="Symbol">=</a> <a id="13324" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="13330" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="13334" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="13336" class="Symbol">((</a><a id="13338" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="13347" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="13352" class="Symbol">(</a><a id="13353" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="13363" class="Symbol">(</a><a id="13364" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13366" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13368" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13369" class="Symbol">)</a> <a id="13371" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="13373" class="Symbol">(((</a><a id="13376" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="13385" class="Symbol">(</a><a id="13386" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="13392" href="Monad.Instance.Delay.html#2345" class="Function">laterlaw</a><a id="13400" class="Symbol">)</a> <a id="13402" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="13406" class="Symbol">)</a> <a id="13408" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="13415" class="Symbol">)</a> <a id="13417" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="13419" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="13423" class="Symbol">(</a><a id="13424" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="13430" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="13433" class="Symbol">))))</a> <a id="13438" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="13445" class="Symbol">)</a>
<a id="13457" href="Monad.Instance.Delay.html#13457" class="Function">helper₁</a> <a id="13465" class="Symbol">:</a> <a id="13467" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13469" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13471" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13473" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13481" class="Symbol">(</a><a id="13482" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13484" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13486" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13487" class="Symbol">)</a> <a id="13489" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13491" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13493" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13497" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="13499" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13507" href="Monad.Instance.Delay.html#13159" class="Bound">f</a>
<a id="13519" href="Monad.Instance.Delay.html#13457" class="Function">helper₁</a> <a id="13527" class="Symbol">=</a> <a id="13529" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="13533" class="Symbol">(</a><a id="13534" href="Monad.Instance.Delay.html#9642" class="Function">extend&#39;-unique</a> <a id="13549" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13551" class="Symbol">(</a><a id="13552" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13554" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13556" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13558" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13566" class="Symbol">(</a><a id="13567" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13569" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13571" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13572" class="Symbol">)</a> <a id="13574" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13576" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13578" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="13581" class="Symbol">)</a> <a id="13583" href="Monad.Instance.Delay.html#13203" class="Function">helper</a><a id="13589" class="Symbol">)</a>
<a id="13598" href="Monad.Instance.Delay.html#13598" class="Function">▷∘extendˡ</a> <a id="13608" class="Symbol">:</a> <a id="13610" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13612" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13614" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13622" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13624" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="13626" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13634" class="Symbol">(</a><a id="13635" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13637" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13639" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13640" class="Symbol">)</a>
<a id="13648" href="Monad.Instance.Delay.html#13598" class="Function">▷∘extendˡ</a> <a id="13658" class="Symbol">=</a> <a id="13660" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="13664" class="Symbol">(</a><a id="13665" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="13680" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13688" class="Symbol">(</a><a id="13689" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13691" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13693" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13694" class="Symbol">)</a> <a id="13733" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13736" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="13743" class="Symbol">(</a><a id="13744" href="Categories.Morphism.html#1586" class="Function">_≅_.isoˡ</a> <a id="13753" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="13758" class="Symbol">)</a> <a id="13760" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="13771" class="Symbol">(</a><a id="13772" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="13778" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13780" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="13783" class="Symbol">)</a> <a id="13785" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13787" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13795" class="Symbol">(</a><a id="13796" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13798" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13800" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13801" class="Symbol">)</a> <a id="13824" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13827" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="13833" class="Symbol">(</a><a id="13834" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="13844" class="Symbol">(</a><a id="13845" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13847" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13849" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13850" class="Symbol">))</a> <a id="13853" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="13863" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="13869" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13871" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="13873" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13877" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13879" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13881" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13883" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="13885" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="13887" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="13890" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13892" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="13900" class="Symbol">(</a><a id="13901" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="13903" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13905" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="13906" class="Symbol">)</a> <a id="13908" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="13910" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="13912" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="13916" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13919" class="Symbol">(</a><a id="13920" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="13928" class="Symbol">((</a><a id="13930" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="13939" class="Symbol">(</a><a id="13940" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="13946" href="Monad.Instance.Delay.html#2345" class="Function">laterlaw</a><a id="13954" class="Symbol">)</a> <a id="13956" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="13960" class="Symbol">)</a> <a id="13962" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="13964" class="Symbol">(</a><a id="13965" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="13969" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="13972" class="Symbol">))</a> <a id="13975" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="13982" class="Symbol">)</a> <a id="13984" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="13994" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="14000" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14002" class="Symbol">(</a><a id="14003" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="14006" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14008" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="14010" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14012" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="14014" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14022" class="Symbol">(</a><a id="14023" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14025" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14027" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="14028" class="Symbol">)</a> <a id="14030" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="14031" class="Symbol">)</a> <a id="14033" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14035" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="14047" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14050" class="Symbol">(</a><a id="14051" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="14059" class="Symbol">(</a><a id="14060" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="14066" href="Monad.Instance.Delay.html#13457" class="Function">helper₁</a><a id="14073" class="Symbol">))</a> <a id="14076" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14086" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="14092" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14094" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="14097" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14099" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14107" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14139" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14142" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="14152" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14162" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14164" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14166" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14174" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14215" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a><a id="14216" class="Symbol">)</a>
<a id="14225" href="Monad.Instance.Delay.html#14225" class="Function">▷∘extend-comm</a> <a id="14239" class="Symbol">:</a> <a id="14241" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14243" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14245" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14253" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14255" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="14257" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14265" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14267" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14269" href="Monad.Instance.Delay.html#2255" class="Function"></a>
<a id="14277" href="Monad.Instance.Delay.html#14225" class="Function">▷∘extend-comm</a> <a id="14291" class="Symbol">=</a> <a id="14293" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14297" class="Symbol">(</a><a id="14298" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="14313" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14321" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14323" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14325" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14362" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14365" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="14372" class="Symbol">(</a><a id="14373" href="Categories.Morphism.html#1586" class="Function">_≅_.isoˡ</a> <a id="14382" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="14387" class="Symbol">)</a> <a id="14389" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14400" class="Symbol">(</a><a id="14401" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="14407" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14409" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="14412" class="Symbol">)</a> <a id="14414" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14416" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14424" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14426" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14428" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14449" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14452" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="14458" class="Symbol">(</a><a id="14459" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="14465" class="Symbol">(</a><a id="14466" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="14476" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="14477" class="Symbol">))</a> <a id="14480" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14491" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="14497" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14499" class="Symbol">(</a><a id="14500" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="14502" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="14506" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14508" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14510" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="14512" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="14515" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14517" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14525" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14527" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="14529" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14531" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="14534" class="Symbol">)</a> <a id="14536" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14538" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14540" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14543" class="Symbol">(</a><a id="14544" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="14552" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="14558" href="Monad.Instance.Delay.html#2345" class="Function">laterlaw</a><a id="14566" class="Symbol">)</a> <a id="14568" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14579" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="14585" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14587" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="14589" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="14593" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14595" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14597" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="14599" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="14602" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14604" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14612" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14614" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="14616" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14618" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="14628" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14631" class="Symbol">(</a><a id="14632" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="14640" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="14647" class="Symbol">)</a> <a id="14649" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="14651" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="14661" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="14672" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14674" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14676" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14684" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14721" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a><a id="14722" class="Symbol">)</a>
<a id="14731" href="Monad.Instance.Delay.html#14731" class="Function">▷∘extendʳ</a> <a id="14741" class="Symbol">:</a> <a id="14743" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14751" href="Monad.Instance.Delay.html#13159" class="Bound">f</a> <a id="14753" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14755" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14757" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="14759" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="14767" class="Symbol">(</a><a id="14768" href="Monad.Instance.Delay.html#2255" class="Function"></a> <a id="14770" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14772" href="Monad.Instance.Delay.html#13159" class="Bound">f</a><a id="14773" class="Symbol">)</a>
<a id="14781" href="Monad.Instance.Delay.html#14731" class="Function">▷∘extendʳ</a> <a id="14791" class="Symbol">=</a> <a id="14793" class="Symbol">(</a><a id="14794" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14798" href="Monad.Instance.Delay.html#14225" class="Function">▷∘extend-comm</a><a id="14811" class="Symbol">)</a> <a id="14813" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="14815" href="Monad.Instance.Delay.html#13598" class="Function">▷∘extendˡ</a>
<a id="DelayM.is-guarded"></a><a id="14830" href="Monad.Instance.Delay.html#14830" class="Function">is-guarded</a> <a id="14841" class="Symbol">:</a> <a id="14843" class="Symbol"></a> <a id="14845" class="Symbol">{</a><a id="14846" href="Monad.Instance.Delay.html#14846" class="Bound">X</a> <a id="14848" href="Monad.Instance.Delay.html#14848" class="Bound">Y</a><a id="14849" class="Symbol">}</a> <a id="14851" class="Symbol">(</a><a id="14852" href="Monad.Instance.Delay.html#14852" class="Bound">g</a> <a id="14854" class="Symbol">:</a> <a id="14856" href="Monad.Instance.Delay.html#14846" class="Bound">X</a> <a id="14858" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="14860" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="14863" class="Symbol">(</a><a id="14864" href="Monad.Instance.Delay.html#14848" class="Bound">Y</a> <a id="14866" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="14868" href="Monad.Instance.Delay.html#14846" class="Bound">X</a><a id="14869" class="Symbol">))</a> <a id="14872" class="Symbol"></a> <a id="14874" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="14878" class="Symbol">(</a><a id="14879" href="Monad.Instance.Delay.html#680" class="Bound"></a> <a id="14881" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="14883" href="Monad.Instance.Delay.html#682" class="Bound">e</a><a id="14884" class="Symbol">)</a>
<a id="14890" href="Monad.Instance.Delay.html#14830" class="Function">is-guarded</a> <a id="14901" class="Symbol">{</a><a id="14902" href="Monad.Instance.Delay.html#14902" class="Bound">X</a><a id="14903" class="Symbol">}</a> <a id="14905" class="Symbol">{</a><a id="14906" href="Monad.Instance.Delay.html#14906" class="Bound">Y</a><a id="14907" class="Symbol">}</a> <a id="14909" href="Monad.Instance.Delay.html#14909" class="Bound">g</a> <a id="14911" class="Symbol">=</a> <a id="14913" href="Data.Product.Base.html#1371" class="Function">∃[</a> <a id="14916" href="Monad.Instance.Delay.html#14916" class="Bound">h</a> <a id="14918" href="Data.Product.Base.html#1371" class="Function">]</a> <a id="14920" class="Symbol">(</a><a id="14921" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="14924" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14927" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14930" class="Symbol">)</a> <a id="14932" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14934" href="Monad.Instance.Delay.html#14916" class="Bound">h</a> <a id="14936" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="14938" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="14942" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="14944" href="Monad.Instance.Delay.html#14909" class="Bound">g</a>
<a id="DelayM.guarded-unique"></a><a id="14951" href="Monad.Instance.Delay.html#14951" class="Function">guarded-unique</a> <a id="14966" class="Symbol">:</a> <a id="14968" class="Symbol"></a> <a id="14970" class="Symbol">{</a><a id="14971" href="Monad.Instance.Delay.html#14971" class="Bound">X</a> <a id="14973" href="Monad.Instance.Delay.html#14973" class="Bound">Y</a><a id="14974" class="Symbol">}</a> <a id="14976" class="Symbol">(</a><a id="14977" href="Monad.Instance.Delay.html#14977" class="Bound">g</a> <a id="14979" class="Symbol">:</a> <a id="14981" href="Monad.Instance.Delay.html#14971" class="Bound">X</a> <a id="14983" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="14985" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="14988" class="Symbol">(</a><a id="14989" href="Monad.Instance.Delay.html#14973" class="Bound">Y</a> <a id="14991" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="14993" href="Monad.Instance.Delay.html#14971" class="Bound">X</a><a id="14994" class="Symbol">))</a> <a id="14997" class="Symbol">(</a><a id="14998" href="Monad.Instance.Delay.html#14998" class="Bound">f</a> <a id="15000" href="Monad.Instance.Delay.html#15000" class="Bound">i</a> <a id="15002" class="Symbol">:</a> <a id="15004" href="Monad.Instance.Delay.html#14971" class="Bound">X</a> <a id="15006" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="15008" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="15011" href="Monad.Instance.Delay.html#14973" class="Bound">Y</a><a id="15012" class="Symbol">)</a> <a id="15014" class="Symbol"></a> <a id="15016" href="Monad.Instance.Delay.html#14830" class="Function">is-guarded</a> <a id="15027" href="Monad.Instance.Delay.html#14977" class="Bound">g</a> <a id="15029" class="Symbol"></a> <a id="15031" href="Monad.Instance.Delay.html#14998" class="Bound">f</a> <a id="15033" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="15035" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15043" class="Symbol">(</a><a id="15044" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15046" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15050" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15052" href="Monad.Instance.Delay.html#14998" class="Bound">f</a> <a id="15054" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15055" class="Symbol">)</a> <a id="15057" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15059" href="Monad.Instance.Delay.html#14977" class="Bound">g</a> <a id="15061" class="Symbol"></a> <a id="15063" href="Monad.Instance.Delay.html#15000" class="Bound">i</a> <a id="15065" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="15067" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15075" class="Symbol">(</a><a id="15076" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15078" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15082" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15084" href="Monad.Instance.Delay.html#15000" class="Bound">i</a> <a id="15086" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15087" class="Symbol">)</a> <a id="15089" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15091" href="Monad.Instance.Delay.html#14977" class="Bound">g</a> <a id="15093" class="Symbol"></a> <a id="15095" href="Monad.Instance.Delay.html#14998" class="Bound">f</a> <a id="15097" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="15099" href="Monad.Instance.Delay.html#15000" class="Bound">i</a>
<a id="15105" href="Monad.Instance.Delay.html#14951" class="Function">guarded-unique</a> <a id="15120" class="Symbol">{</a><a id="15121" href="Monad.Instance.Delay.html#15121" class="Bound">X</a><a id="15122" class="Symbol">}</a> <a id="15124" class="Symbol">{</a><a id="15125" href="Monad.Instance.Delay.html#15125" class="Bound">Y</a><a id="15126" class="Symbol">}</a> <a id="15128" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="15130" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15132" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="15134" class="Symbol">(</a><a id="15135" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="15137" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="15139" href="Monad.Instance.Delay.html#15139" class="Bound">guarded</a><a id="15146" class="Symbol">)</a> <a id="15148" href="Monad.Instance.Delay.html#15148" class="Bound">eqf</a> <a id="15152" href="Monad.Instance.Delay.html#15152" class="Bound">eqi</a> <a id="15156" class="Symbol">=</a> <a id="15158" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="15171" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15205" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="15208" href="Monad.Instance.Delay.html#15148" class="Bound">eqf</a> <a id="15212" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="15221" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15229" class="Symbol">(</a><a id="15230" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15232" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15236" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15238" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15240" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15241" class="Symbol">)</a> <a id="15243" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15245" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="15255" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="15258" class="Symbol">(</a><a id="15259" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="15263" class="Symbol">(</a><a id="15264" href="Categories.Object.Terminal.html#605" class="Function">Terminal.!-unique</a> <a id="15282" class="Symbol">(</a><a id="15283" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="15294" href="Monad.Instance.Delay.html#15125" class="Bound">Y</a><a id="15295" class="Symbol">)</a> <a id="15297" class="Symbol">(</a><a id="15298" class="Keyword">record</a> <a id="15305" class="Symbol">{</a> <a id="15307" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="15309" class="Symbol">=</a> <a id="15311" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15319" class="Symbol">(</a><a id="15320" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15322" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15326" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15328" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15330" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15331" class="Symbol">)</a> <a id="15333" class="Symbol">;</a> <a id="15335" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="15344" class="Symbol">=</a> <a id="15346" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="15361" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15365" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15367" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15375" class="Symbol">(</a><a id="15376" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15378" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15382" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15384" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15386" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15387" class="Symbol">)</a> <a id="15477" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="15480" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="15490" class="Symbol">(</a><a id="15491" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15493" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15497" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15499" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15501" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15502" class="Symbol">)</a> <a id="15504" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="15515" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15517" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15521" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15523" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15525" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15529" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15531" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15533" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15535" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15537" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="15540" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15542" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15550" class="Symbol">(</a><a id="15551" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15553" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15557" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15559" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15561" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15562" class="Symbol">)</a> <a id="15564" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15566" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15568" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15631" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="15634" class="Symbol">(</a><a id="15635" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="15644" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="15648" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="15652" class="Symbol">)</a> <a id="15654" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="15662" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="15673" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15675" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15677" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15681" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15683" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15687" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15689" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15693" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15695" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15697" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15699" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15701" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="15704" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15706" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15714" class="Symbol">(</a><a id="15715" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15717" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15721" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15723" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15725" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15726" class="Symbol">)</a> <a id="15728" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15730" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15732" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15789" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="15792" class="Symbol">(</a><a id="15793" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="15802" class="Symbol">(</a><a id="15803" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="15812" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a> <a id="15820" class="Symbol">(</a><a id="15821" href="Monad.Instance.Delay.html#18200" class="Function">helper</a> <a id="15828" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15830" href="Monad.Instance.Delay.html#15148" class="Bound">eqf</a><a id="15833" class="Symbol">))</a> <a id="15836" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="15840" class="Symbol">)</a> <a id="15842" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="15850" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="15860" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15862" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15864" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="15867" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15869" class="Symbol">(</a><a id="15870" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="15874" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="15877" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15885" class="Symbol">(</a><a id="15886" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15888" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15892" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15894" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15896" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15897" class="Symbol">))</a> <a id="15900" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15902" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="15904" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15906" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15908" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="15911" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15913" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="15921" class="Symbol">(</a><a id="15922" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="15924" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="15928" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="15930" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="15932" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="15933" class="Symbol">)</a> <a id="15935" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="15937" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="15939" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="15976" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="15980" class="Symbol">(</a><a id="15981" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="15990" class="Symbol">(</a><a id="15991" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="16000" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="16010" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="16014" class="Symbol">)</a> <a id="16016" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="16020" class="Symbol">)</a> <a id="16022" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="16030" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="16040" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16042" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16044" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="16047" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16049" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16053" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16055" class="Symbol">(</a><a id="16056" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16060" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16063" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16071" class="Symbol">(</a><a id="16072" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16074" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16078" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16080" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16082" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16083" class="Symbol">))</a> <a id="16086" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16088" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="16090" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16092" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16094" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="16097" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16099" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16107" class="Symbol">(</a><a id="16108" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16110" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16114" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16116" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16118" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16119" class="Symbol">)</a> <a id="16121" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16123" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16125" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16156" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="16160" class="Symbol">(</a><a id="16161" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="16170" class="Symbol">(</a><a id="16171" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="16180" href="Categories.Category.Cocartesian.html#2548" class="Function">+₁∘i₁</a> <a id="16186" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="16190" class="Symbol">)</a> <a id="16192" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="16196" class="Symbol">)</a> <a id="16198" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="16206" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="16217" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16219" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16221" class="Symbol">(</a><a id="16222" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16226" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16229" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16237" class="Symbol">(</a><a id="16238" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16240" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16244" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16246" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16248" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16249" class="Symbol">))</a> <a id="16252" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16254" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="16257" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16259" class="Symbol">(</a><a id="16260" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16264" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16267" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16275" class="Symbol">(</a><a id="16276" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16278" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16282" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16284" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16286" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16287" class="Symbol">))</a> <a id="16290" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16292" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="16294" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16296" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16298" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="16301" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16303" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16311" class="Symbol">(</a><a id="16312" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16314" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16318" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16320" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16322" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16323" class="Symbol">)</a> <a id="16325" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16327" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16329" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16333" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="16337" class="Symbol">(</a><a id="16338" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="16347" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="16351" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="16356" class="Symbol">)</a> <a id="16358" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="16366" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="16377" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16379" class="Symbol">(</a><a id="16380" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16384" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16387" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16395" class="Symbol">(</a><a id="16396" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16398" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16402" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16404" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16406" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16407" class="Symbol">))</a> <a id="16410" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16412" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16414" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="16417" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16419" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="16421" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16423" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16425" class="Symbol">(</a><a id="16426" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16430" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16433" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16441" class="Symbol">(</a><a id="16442" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16444" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16448" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16450" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16452" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16453" class="Symbol">))</a> <a id="16456" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16458" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="16461" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16463" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16465" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16493" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="16497" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="16503" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="16507" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="16518" class="Symbol">(</a><a id="16519" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="16523" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="16526" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16534" class="Symbol">(</a><a id="16535" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16537" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16541" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16543" href="Monad.Instance.Delay.html#15130" class="Bound">f</a> <a id="16545" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16546" class="Symbol">))</a> <a id="16549" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16551" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16553" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16555" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="16558" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16560" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="16562" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16564" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16566" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="16569" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16571" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16573" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16634" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="16636" class="Symbol">})))</a> <a id="16641" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="16649" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="16658" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="16660" class="Symbol">(</a><a id="16661" href="Categories.Object.Terminal.html#577" class="Function">Terminal.!</a> <a id="16672" class="Symbol">(</a><a id="16673" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="16684" href="Monad.Instance.Delay.html#15125" class="Bound">Y</a><a id="16685" class="Symbol">))</a> <a id="16688" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16690" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="16692" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="16695" class="Symbol">(</a><a id="16696" href="Categories.Object.Terminal.html#605" class="Function">Terminal.!-unique</a> <a id="16714" class="Symbol">(</a><a id="16715" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="16726" href="Monad.Instance.Delay.html#15125" class="Bound">Y</a><a id="16727" class="Symbol">)</a> <a id="16729" class="Symbol">(</a><a id="16730" class="Keyword">record</a> <a id="16737" class="Symbol">{</a> <a id="16739" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="16741" class="Symbol">=</a> <a id="16743" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16751" class="Symbol">(</a><a id="16752" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16754" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16758" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16760" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="16762" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16763" class="Symbol">)</a> <a id="16765" class="Symbol">;</a> <a id="16767" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="16776" class="Symbol">=</a> <a id="16778" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="16793" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16797" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16799" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16807" class="Symbol">(</a><a id="16808" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16810" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16814" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16816" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="16818" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16819" class="Symbol">)</a> <a id="16909" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="16912" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="16922" class="Symbol">(</a><a id="16923" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16925" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16929" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16931" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="16933" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16934" class="Symbol">)</a> <a id="16936" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="16947" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16949" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="16953" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16955" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16957" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16961" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16963" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="16965" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16967" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16969" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="16972" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="16974" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="16982" class="Symbol">(</a><a id="16983" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="16985" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="16989" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="16991" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="16993" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="16994" class="Symbol">)</a> <a id="16996" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="16998" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17000" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17063" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="17066" class="Symbol">(</a><a id="17067" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17076" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="17080" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17084" class="Symbol">)</a> <a id="17086" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="17094" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="17105" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17107" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17109" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17113" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17115" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17119" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17121" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17125" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17127" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17129" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17131" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17133" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="17136" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17138" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17146" class="Symbol">(</a><a id="17147" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17149" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17153" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17155" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17157" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17158" class="Symbol">)</a> <a id="17160" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17162" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17164" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17221" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="17224" class="Symbol">(</a><a id="17225" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17234" class="Symbol">(</a><a id="17235" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17244" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a> <a id="17252" class="Symbol">(</a><a id="17253" href="Monad.Instance.Delay.html#18200" class="Function">helper</a> <a id="17260" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17262" href="Monad.Instance.Delay.html#15152" class="Bound">eqi</a><a id="17265" class="Symbol">))</a> <a id="17268" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17272" class="Symbol">)</a> <a id="17274" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="17282" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="17293" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17295" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17297" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="17300" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17302" class="Symbol">(</a><a id="17303" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17307" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17310" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17318" class="Symbol">(</a><a id="17319" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17321" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17325" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17327" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17329" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17330" class="Symbol">))</a> <a id="17333" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17335" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="17337" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17339" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17341" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="17344" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17346" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17354" class="Symbol">(</a><a id="17355" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17357" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17361" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17363" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17365" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17366" class="Symbol">)</a> <a id="17368" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17370" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17372" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17409" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="17413" class="Symbol">(</a><a id="17414" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17423" class="Symbol">(</a><a id="17424" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17433" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="17443" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17447" class="Symbol">)</a> <a id="17449" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17453" class="Symbol">)</a> <a id="17455" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="17463" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="17473" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17475" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17477" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="17480" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17482" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17486" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17488" class="Symbol">(</a><a id="17489" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17493" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17496" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17504" class="Symbol">(</a><a id="17505" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17507" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17511" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17513" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17515" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17516" class="Symbol">))</a> <a id="17519" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17521" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="17523" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17525" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17527" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="17530" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17532" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17540" class="Symbol">(</a><a id="17541" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17543" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17547" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17549" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17551" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17552" class="Symbol">)</a> <a id="17554" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17556" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17558" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17589" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="17593" class="Symbol">(</a><a id="17594" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17603" class="Symbol">(</a><a id="17604" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17613" href="Categories.Category.Cocartesian.html#2548" class="Function">+₁∘i₁</a> <a id="17619" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17623" class="Symbol">)</a> <a id="17625" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="17629" class="Symbol">)</a> <a id="17631" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="17639" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="17650" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17652" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17654" class="Symbol">(</a><a id="17655" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17659" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17662" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17670" class="Symbol">(</a><a id="17671" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17673" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17677" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17679" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17681" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17682" class="Symbol">))</a> <a id="17685" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17687" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="17690" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17692" class="Symbol">(</a><a id="17693" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17697" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17700" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17708" class="Symbol">(</a><a id="17709" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17711" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17715" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17717" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17719" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17720" class="Symbol">))</a> <a id="17723" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17725" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="17727" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17729" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17731" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="17734" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17736" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17744" class="Symbol">(</a><a id="17745" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17747" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17751" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17753" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17755" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17756" class="Symbol">)</a> <a id="17758" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17760" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17762" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17766" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="17770" class="Symbol">(</a><a id="17771" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="17780" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="17784" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="17789" class="Symbol">)</a> <a id="17791" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="17799" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="17810" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17812" class="Symbol">(</a><a id="17813" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17817" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17820" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17828" class="Symbol">(</a><a id="17829" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17831" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17835" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17837" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17839" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17840" class="Symbol">))</a> <a id="17843" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17845" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17847" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="17850" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17852" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="17854" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17856" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17858" class="Symbol">(</a><a id="17859" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17863" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17866" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17874" class="Symbol">(</a><a id="17875" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17877" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17881" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17883" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17885" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17886" class="Symbol">))</a> <a id="17889" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17891" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="17894" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17896" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17898" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="17926" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="17930" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="17936" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="17940" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="17951" class="Symbol">(</a><a id="17952" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="17956" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="17959" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="17967" class="Symbol">(</a><a id="17968" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17970" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="17974" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17976" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="17978" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="17979" class="Symbol">))</a> <a id="17982" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="17984" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17986" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="17988" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="17991" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17993" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="17995" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="17997" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="17999" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="18002" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18004" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18006" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18067" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="18069" class="Symbol">}))</a> <a id="18073" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="18081" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18090" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18098" class="Symbol">(</a><a id="18099" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18101" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18105" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18107" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="18109" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18110" class="Symbol">)</a> <a id="18112" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18114" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="18124" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18127" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="18131" href="Monad.Instance.Delay.html#15152" class="Bound">eqi</a> <a id="18135" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18144" href="Monad.Instance.Delay.html#15132" class="Bound">i</a> <a id="18178" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="18186" class="Keyword">where</a>
<a id="18200" href="Monad.Instance.Delay.html#18200" class="Function">helper</a> <a id="18207" class="Symbol">:</a> <a id="18209" class="Symbol"></a> <a id="18211" class="Symbol">(</a><a id="18212" href="Monad.Instance.Delay.html#18212" class="Bound">f</a> <a id="18214" class="Symbol">:</a> <a id="18216" href="Monad.Instance.Delay.html#15121" class="Bound">X</a> <a id="18218" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="18220" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="18223" href="Monad.Instance.Delay.html#15125" class="Bound">Y</a><a id="18224" class="Symbol">)</a> <a id="18226" class="Symbol"></a> <a id="18228" href="Monad.Instance.Delay.html#18212" class="Bound">f</a> <a id="18230" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="18232" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18240" class="Symbol">(</a><a id="18241" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18243" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18247" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18249" href="Monad.Instance.Delay.html#18212" class="Bound">f</a> <a id="18251" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18252" class="Symbol">)</a> <a id="18254" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18256" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="18258" class="Symbol"></a> <a id="18260" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18264" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18266" href="Monad.Instance.Delay.html#18212" class="Bound">f</a> <a id="18268" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="18270" class="Symbol">(</a><a id="18271" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="18275" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="18278" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18286" class="Symbol">(</a><a id="18287" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18289" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18293" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18295" href="Monad.Instance.Delay.html#18212" class="Bound">f</a> <a id="18297" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18298" class="Symbol">))</a> <a id="18301" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18303" href="Monad.Instance.Delay.html#15135" class="Bound">h</a>
<a id="18313" href="Monad.Instance.Delay.html#18200" class="Function">helper</a> <a id="18320" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18322" href="Monad.Instance.Delay.html#18322" class="Bound">eqf</a> <a id="18326" class="Symbol">=</a> <a id="18328" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="18345" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18349" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18351" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18415" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18418" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="18426" href="Monad.Instance.Delay.html#18322" class="Bound">eqf</a> <a id="18430" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18443" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18447" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18449" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18457" class="Symbol">(</a><a id="18458" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18460" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18464" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18466" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18468" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18469" class="Symbol">)</a> <a id="18471" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18473" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="18513" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18516" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="18522" class="Symbol">(</a><a id="18523" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="18533" class="Symbol">(</a><a id="18534" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18536" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18540" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18542" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18544" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18545" class="Symbol">))</a> <a id="18548" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18560" class="Symbol">(</a><a id="18561" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18563" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18567" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18569" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18571" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18575" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18577" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18579" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18581" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18583" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="18586" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18588" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18596" class="Symbol">(</a><a id="18597" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18599" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18603" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18605" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18607" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18608" class="Symbol">)</a> <a id="18610" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18612" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18614" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="18617" class="Symbol">)</a> <a id="18619" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18621" href="Monad.Instance.Delay.html#15128" class="Bound">g</a> <a id="18630" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18633" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="18639" class="Symbol">(</a><a id="18640" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="18644" href="Monad.Instance.Delay.html#15139" class="Bound">guarded</a><a id="18651" class="Symbol">)</a> <a id="18653" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18665" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18667" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18671" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18673" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18675" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18679" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18681" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18683" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18685" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18687" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="18690" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18692" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18700" class="Symbol">(</a><a id="18701" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18703" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18707" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18709" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18711" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18712" class="Symbol">)</a> <a id="18714" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18716" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18718" class="Symbol">(</a><a id="18719" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="18722" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="18725" href="Category.Ambient.html#2115" class="Function">idC</a><a id="18728" class="Symbol">)</a> <a id="18730" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18732" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="18735" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18738" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="18744" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a> <a id="18750" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18762" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18764" class="Symbol">(</a><a id="18765" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18769" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18771" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18773" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18777" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18779" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18781" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18782" class="Symbol">)</a> <a id="18784" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18786" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="18789" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18791" class="Symbol">(</a><a id="18792" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="18795" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18797" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18805" class="Symbol">(</a><a id="18806" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18808" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18812" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18814" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18816" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18817" class="Symbol">))</a> <a id="18820" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18822" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="18826" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18828" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18830" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="18832" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18835" class="Symbol">(</a><a id="18836" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="18845" class="Symbol">(</a><a id="18846" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="18852" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a><a id="18859" class="Symbol">)</a> <a id="18861" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="18870" class="Symbol">)</a> <a id="18872" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="18880" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="18892" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18894" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="18898" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18900" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18904" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18906" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="18909" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18911" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="18919" class="Symbol">(</a><a id="18920" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="18922" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="18926" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="18928" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="18930" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="18931" class="Symbol">)</a> <a id="18933" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="18935" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="18937" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="18962" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="18965" class="Symbol">(</a><a id="18966" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="18975" class="Symbol">(</a><a id="18976" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a> <a id="18984" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="18986" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="18990" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="18999" class="Symbol">)</a> <a id="19001" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="19005" class="Symbol">)</a> <a id="19007" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="19015" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="19027" class="Symbol">(</a><a id="19028" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="19032" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="19035" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19043" class="Symbol">(</a><a id="19044" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="19046" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19050" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="19052" href="Monad.Instance.Delay.html#18320" class="Bound">f</a> <a id="19054" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="19055" class="Symbol">))</a> <a id="19058" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19060" href="Monad.Instance.Delay.html#15135" class="Bound">h</a> <a id="19097" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="DelayM.out-law"></a><a id="19104" href="Monad.Instance.Delay.html#19104" class="Function">out-law</a> <a id="19112" class="Symbol">:</a> <a id="19114" class="Symbol"></a> <a id="19116" class="Symbol">{</a><a id="19117" href="Monad.Instance.Delay.html#19117" class="Bound">X</a> <a id="19119" href="Monad.Instance.Delay.html#19119" class="Bound">Y</a><a id="19120" class="Symbol">}</a> <a id="19122" class="Symbol">(</a><a id="19123" href="Monad.Instance.Delay.html#19123" class="Bound">f</a> <a id="19125" class="Symbol">:</a> <a id="19127" href="Monad.Instance.Delay.html#19117" class="Bound">X</a> <a id="19129" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="19131" href="Monad.Instance.Delay.html#19119" class="Bound">Y</a><a id="19132" class="Symbol">)</a> <a id="19134" class="Symbol"></a> <a id="19136" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19140" class="Symbol">{</a><a id="19141" href="Monad.Instance.Delay.html#19119" class="Bound">Y</a><a id="19142" class="Symbol">}</a> <a id="19144" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19146" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19154" class="Symbol">(</a><a id="19155" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19159" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19161" href="Monad.Instance.Delay.html#19123" class="Bound">f</a><a id="19162" class="Symbol">)</a> <a id="19164" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="19166" class="Symbol">(</a><a id="19167" href="Monad.Instance.Delay.html#19123" class="Bound">f</a> <a id="19169" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="19172" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19180" class="Symbol">(</a><a id="19181" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19185" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19187" href="Monad.Instance.Delay.html#19123" class="Bound">f</a><a id="19188" class="Symbol">))</a> <a id="19191" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19193" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19197" class="Symbol">{</a><a id="19198" href="Monad.Instance.Delay.html#19117" class="Bound">X</a><a id="19199" class="Symbol">}</a>
<a id="19205" href="Monad.Instance.Delay.html#19104" class="Function">out-law</a> <a id="19213" class="Symbol">{</a><a id="19214" href="Monad.Instance.Delay.html#19214" class="Bound">X</a><a id="19215" class="Symbol">}</a> <a id="19217" class="Symbol">{</a><a id="19218" href="Monad.Instance.Delay.html#19218" class="Bound">Y</a><a id="19219" class="Symbol">}</a> <a id="19221" href="Monad.Instance.Delay.html#19221" class="Bound">f</a> <a id="19223" class="Symbol">=</a> <a id="19225" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="19238" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19242" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19244" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19252" class="Symbol">(</a><a id="19253" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19257" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19259" href="Monad.Instance.Delay.html#19221" class="Bound">f</a><a id="19260" class="Symbol">)</a> <a id="19287" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="19290" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="19300" class="Symbol">(</a><a id="19301" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19305" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19307" href="Monad.Instance.Delay.html#19221" class="Bound">f</a><a id="19308" class="Symbol">)</a> <a id="19310" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="19319" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="19321" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19325" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19327" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19331" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19333" href="Monad.Instance.Delay.html#19221" class="Bound">f</a> <a id="19335" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="19337" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="19340" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19342" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19350" class="Symbol">(</a><a id="19351" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19355" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19357" href="Monad.Instance.Delay.html#19221" class="Bound">f</a><a id="19358" class="Symbol">)</a> <a id="19360" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="19362" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19364" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19368" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="19371" class="Symbol">(</a><a id="19372" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="19381" class="Symbol">(</a><a id="19382" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="19388" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a><a id="19395" class="Symbol">)</a> <a id="19397" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="19401" class="Symbol">)</a> <a id="19403" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="19411" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="19419" class="Symbol">(</a><a id="19420" href="Monad.Instance.Delay.html#19221" class="Bound">f</a> <a id="19422" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="19425" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="19433" class="Symbol">(</a><a id="19434" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19438" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19440" href="Monad.Instance.Delay.html#19221" class="Bound">f</a><a id="19441" class="Symbol">))</a> <a id="19444" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="19446" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="19468" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="DelayM.kleisli"></a><a id="19476" href="Monad.Instance.Delay.html#19476" class="Function">kleisli</a> <a id="19484" class="Symbol">:</a> <a id="19486" href="Categories.Monad.Construction.Kleisli.html#882" class="Function">KleisliTriple</a> <a id="19500" href="Category.Ambient.html#1757" class="Field">C</a>
<a id="19506" href="Monad.Instance.Delay.html#19476" class="Function">kleisli</a> <a id="19514" class="Symbol">=</a> <a id="19516" class="Keyword">record</a>
<a id="19529" class="Symbol">{</a> <a id="19531" href="Categories.Monad.Relative.html#834" class="Field">F₀</a> <a id="19534" class="Symbol">=</a> <a id="19536" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a>
<a id="19546" class="Symbol">;</a> <a id="19548" href="Categories.Monad.Relative.html#857" class="Field">unit</a> <a id="19553" class="Symbol">=</a> <a id="19555" href="Monad.Instance.Delay.html#2135" class="Function">now</a>
<a id="19565" class="Symbol">;</a> <a id="19567" href="Categories.Monad.Relative.html#895" class="Field">extend</a> <a id="19574" class="Symbol">=</a> <a id="19576" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a>
<a id="19590" class="Symbol">;</a> <a id="19592" href="Categories.Monad.Relative.html#953" class="Field">identityʳ</a> <a id="19602" class="Symbol">=</a> <a id="19604" href="Monad.Instance.Delay.html#20883" class="Function">identityʳ&#39;</a>
<a id="19621" class="Symbol">;</a> <a id="19623" href="Categories.Monad.Relative.html#1025" class="Field">identityˡ</a> <a id="19633" class="Symbol">=</a> <a id="19635" href="Monad.Instance.Delay.html#9642" class="Function">extend&#39;-unique</a> <a id="19650" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="19654" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="19658" class="Symbol">(</a><a id="19659" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="19667" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="19669" class="Symbol">(</a><a id="19670" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="19674" class="Symbol">(</a><a id="19675" href="Category.Ambient.html#2218" class="Function">[]-unique</a> <a id="19685" class="Symbol">(</a><a id="19686" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a> <a id="19696" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="19698" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="19702" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a><a id="19709" class="Symbol">)</a> <a id="19711" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a><a id="19722" class="Symbol">))</a> <a id="19725" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="19732" class="Symbol">)</a>
<a id="19740" class="Symbol">;</a> <a id="19742" href="Categories.Monad.Relative.html#1078" class="Field">assoc</a> <a id="19748" class="Symbol">=</a> <a id="19750" href="Monad.Instance.Delay.html#21540" class="Function">assoc&#39;</a>
<a id="19763" class="Symbol">;</a> <a id="19765" href="Categories.Monad.Relative.html#1190" class="Field">sym-assoc</a> <a id="19775" class="Symbol">=</a> <a id="19777" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="19781" href="Monad.Instance.Delay.html#21540" class="Function">assoc&#39;</a>
<a id="19794" class="Symbol">;</a> <a id="19796" href="Categories.Monad.Relative.html#1306" class="Field">extend-≈</a> <a id="19805" class="Symbol">=</a> <a id="19807" href="Monad.Instance.Delay.html#22438" class="Function">extend-≈&#39;</a>
<a id="19823" class="Symbol">}</a>
<a id="19831" class="Keyword">where</a>
<a id="19845" class="Keyword">open</a> <a id="19850" href="Categories.Object.Terminal.html#860" class="Module">Terminal</a>
<a id="19868" href="Monad.Instance.Delay.html#19868" class="Function">αf≈αg</a> <a id="19874" class="Symbol">:</a> <a id="19876" class="Symbol"></a> <a id="19878" class="Symbol">{</a><a id="19879" href="Monad.Instance.Delay.html#19879" class="Bound">X</a> <a id="19881" href="Monad.Instance.Delay.html#19881" class="Bound">Y</a><a id="19882" class="Symbol">}</a> <a id="19884" class="Symbol">{</a><a id="19885" href="Monad.Instance.Delay.html#19885" class="Bound">f</a> <a id="19887" href="Monad.Instance.Delay.html#19887" class="Bound">g</a> <a id="19889" class="Symbol">:</a> <a id="19891" href="Monad.Instance.Delay.html#19879" class="Bound">X</a> <a id="19893" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="19895" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="19898" href="Monad.Instance.Delay.html#19881" class="Bound">Y</a><a id="19899" class="Symbol">}</a> <a id="19901" class="Symbol"></a> <a id="19903" href="Monad.Instance.Delay.html#19885" class="Bound">f</a> <a id="19905" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="19907" href="Monad.Instance.Delay.html#19887" class="Bound">g</a> <a id="19909" class="Symbol"></a> <a id="19911" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="19913" class="Symbol">(</a><a id="19914" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="19918" href="Monad.Instance.Delay.html#19885" class="Bound">f</a><a id="19919" class="Symbol">)</a> <a id="19921" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="19923" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="19925" class="Symbol">(</a><a id="19926" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="19930" href="Monad.Instance.Delay.html#19887" class="Bound">g</a><a id="19931" class="Symbol">)</a>
<a id="19941" href="Monad.Instance.Delay.html#19868" class="Function">αf≈αg</a> <a id="19947" class="Symbol">{</a><a id="19948" href="Monad.Instance.Delay.html#19948" class="Bound">X</a><a id="19949" class="Symbol">}</a> <a id="19951" class="Symbol">{</a><a id="19952" href="Monad.Instance.Delay.html#19952" class="Bound">Y</a><a id="19953" class="Symbol">}</a> <a id="19955" class="Symbol">{</a><a id="19956" href="Monad.Instance.Delay.html#19956" class="Bound">f</a><a id="19957" class="Symbol">}</a> <a id="19959" class="Symbol">{</a><a id="19960" href="Monad.Instance.Delay.html#19960" class="Bound">g</a><a id="19961" class="Symbol">}</a> <a id="19963" href="Monad.Instance.Delay.html#19963" class="Bound">eq</a> <a id="19966" class="Symbol">=</a> <a id="19968" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="19977" class="Symbol">(</a><a id="19978" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="19987" class="Symbol">(</a><a id="19988" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="19996" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="20004" href="Monad.Instance.Delay.html#19963" class="Bound">eq</a><a id="20006" class="Symbol">)</a> <a id="20008" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="20013" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="20020" class="Symbol">)</a> <a id="20022" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="20036" href="Monad.Instance.Delay.html#20036" class="Function">alg-f≈alg-g</a> <a id="20048" class="Symbol">:</a> <a id="20050" class="Symbol"></a> <a id="20052" class="Symbol">{</a><a id="20053" href="Monad.Instance.Delay.html#20053" class="Bound">X</a> <a id="20055" href="Monad.Instance.Delay.html#20055" class="Bound">Y</a><a id="20056" class="Symbol">}</a> <a id="20058" class="Symbol">{</a><a id="20059" href="Monad.Instance.Delay.html#20059" class="Bound">f</a> <a id="20061" href="Monad.Instance.Delay.html#20061" class="Bound">g</a> <a id="20063" class="Symbol">:</a> <a id="20065" href="Monad.Instance.Delay.html#20053" class="Bound">X</a> <a id="20067" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="20069" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="20072" href="Monad.Instance.Delay.html#20055" class="Bound">Y</a><a id="20073" class="Symbol">}</a> <a id="20075" class="Symbol"></a> <a id="20077" href="Monad.Instance.Delay.html#20059" class="Bound">f</a> <a id="20079" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="20081" href="Monad.Instance.Delay.html#20061" class="Bound">g</a> <a id="20083" class="Symbol"></a> <a id="20085" href="Categories.Morphism.html#1958" class="Record Operator">M._≅_</a> <a id="20091" class="Symbol">(</a><a id="20092" href="Categories.Category.Construction.F-Coalgebras.html#598" class="Function">F-Coalgebras</a> <a id="20105" class="Symbol">(</a><a id="20106" href="Monad.Instance.Delay.html#20055" class="Bound">Y</a> <a id="20108" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="20110" class="Symbol">))</a> <a id="20113" class="Symbol">(</a><a id="20114" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20118" href="Monad.Instance.Delay.html#20059" class="Bound">f</a><a id="20119" class="Symbol">)</a> <a id="20121" class="Symbol">(</a><a id="20122" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20126" href="Monad.Instance.Delay.html#20061" class="Bound">g</a><a id="20127" class="Symbol">)</a>
<a id="20137" href="Monad.Instance.Delay.html#20036" class="Function">alg-f≈alg-g</a> <a id="20149" class="Symbol">{</a><a id="20150" href="Monad.Instance.Delay.html#20150" class="Bound">X</a><a id="20151" class="Symbol">}</a> <a id="20153" class="Symbol">{</a><a id="20154" href="Monad.Instance.Delay.html#20154" class="Bound">Y</a><a id="20155" class="Symbol">}</a> <a id="20157" class="Symbol">{</a><a id="20158" href="Monad.Instance.Delay.html#20158" class="Bound">f</a><a id="20159" class="Symbol">}</a> <a id="20161" class="Symbol">{</a><a id="20162" href="Monad.Instance.Delay.html#20162" class="Bound">g</a><a id="20163" class="Symbol">}</a> <a id="20165" href="Monad.Instance.Delay.html#20165" class="Bound">eq</a> <a id="20168" class="Symbol">=</a> <a id="20170" class="Keyword">record</a>
<a id="20188" class="Symbol">{</a> <a id="20190" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="20195" class="Symbol">=</a> <a id="20197" class="Keyword">record</a> <a id="20204" class="Symbol">{</a> <a id="20206" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="20208" class="Symbol">=</a> <a id="20210" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20214" class="Symbol">;</a> <a id="20216" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="20225" class="Symbol">=</a> <a id="20227" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="20246" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20248" class="Symbol">(</a><a id="20249" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20253" href="Monad.Instance.Delay.html#20162" class="Bound">g</a><a id="20254" class="Symbol">)</a> <a id="20256" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="20258" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20271" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="20274" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="20284" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="20299" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20301" class="Symbol">(</a><a id="20302" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20306" href="Monad.Instance.Delay.html#20162" class="Bound">g</a><a id="20307" class="Symbol">)</a> <a id="20324" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="20327" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="20329" class="Symbol">(</a><a id="20330" href="Monad.Instance.Delay.html#19868" class="Function">αf≈αg</a> <a id="20336" href="Monad.Instance.Delay.html#20165" class="Bound">eq</a><a id="20338" class="Symbol">)</a> <a id="20340" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="20355" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20357" class="Symbol">(</a><a id="20358" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20362" href="Monad.Instance.Delay.html#20158" class="Bound">f</a><a id="20363" class="Symbol">)</a> <a id="20380" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="20384" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="20390" href="Categories.Functor.Core.html#511" class="Function">identity</a> <a id="20399" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="20414" class="Symbol">(</a><a id="20415" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20419" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="20422" href="Category.Ambient.html#2115" class="Function">idC</a><a id="20425" class="Symbol">)</a> <a id="20427" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="20429" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20431" class="Symbol">(</a><a id="20432" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20436" href="Monad.Instance.Delay.html#20158" class="Bound">f</a><a id="20437" class="Symbol">)</a> <a id="20439" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="20441" class="Symbol">}</a>
<a id="20454" class="Symbol">;</a> <a id="20456" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="20459" class="Symbol">=</a> <a id="20461" class="Keyword">record</a> <a id="20468" class="Symbol">{</a> <a id="20470" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="20472" class="Symbol">=</a> <a id="20474" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20478" class="Symbol">;</a> <a id="20480" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="20489" class="Symbol">=</a> <a id="20491" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="20510" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20512" class="Symbol">(</a><a id="20513" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20517" href="Monad.Instance.Delay.html#20158" class="Bound">f</a><a id="20518" class="Symbol">)</a> <a id="20520" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="20522" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20535" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="20538" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="20548" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="20563" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20565" class="Symbol">(</a><a id="20566" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20570" href="Monad.Instance.Delay.html#20158" class="Bound">f</a><a id="20571" class="Symbol">)</a> <a id="20588" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="20591" href="Monad.Instance.Delay.html#19868" class="Function">αf≈αg</a> <a id="20597" href="Monad.Instance.Delay.html#20165" class="Bound">eq</a> <a id="20600" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="20615" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20617" class="Symbol">(</a><a id="20618" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20622" href="Monad.Instance.Delay.html#20162" class="Bound">g</a><a id="20623" class="Symbol">)</a> <a id="20640" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="20644" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="20650" href="Categories.Functor.Core.html#511" class="Function">identity</a> <a id="20659" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="20674" class="Symbol">(</a><a id="20675" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="20679" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="20682" href="Category.Ambient.html#2115" class="Function">idC</a><a id="20685" class="Symbol">)</a> <a id="20687" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="20689" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="20691" class="Symbol">(</a><a id="20692" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="20696" href="Monad.Instance.Delay.html#20162" class="Bound">g</a><a id="20697" class="Symbol">)</a> <a id="20699" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="20701" class="Symbol">}</a>
<a id="20714" class="Symbol">;</a> <a id="20716" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="20720" class="Symbol">=</a> <a id="20722" class="Keyword">record</a>
<a id="20742" class="Symbol">{</a> <a id="20744" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="20749" class="Symbol">=</a> <a id="20751" href="Categories.Category.Core.html#1339" class="Function">identity²</a>
<a id="20774" class="Symbol">;</a> <a id="20776" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="20781" class="Symbol">=</a> <a id="20783" href="Categories.Category.Core.html#1339" class="Function">identity²</a>
<a id="20806" class="Symbol">}</a>
<a id="20819" class="Symbol">}</a>
<a id="20831" class="Keyword">where</a> <a id="20837" class="Keyword">open</a> <a id="20842" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="20850" class="Symbol">(</a><a id="20851" href="Monad.Instance.Delay.html#20154" class="Bound">Y</a> <a id="20853" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="20855" class="Symbol">)</a> <a id="20857" class="Keyword">using</a> <a id="20863" class="Symbol">(</a><a id="20864" href="Categories.Functor.Core.html#511" class="Field">identity</a><a id="20872" class="Symbol">)</a>
<a id="20883" href="Monad.Instance.Delay.html#20883" class="Function">identityʳ&#39;</a> <a id="20894" class="Symbol">:</a> <a id="20896" class="Symbol"></a> <a id="20898" class="Symbol">{</a><a id="20899" href="Monad.Instance.Delay.html#20899" class="Bound">X</a> <a id="20901" href="Monad.Instance.Delay.html#20901" class="Bound">Y</a> <a id="20903" class="Symbol">:</a> <a id="20905" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="20908" class="Symbol">}</a> <a id="20910" class="Symbol">{</a><a id="20911" href="Monad.Instance.Delay.html#20911" class="Bound">f</a> <a id="20913" class="Symbol">:</a> <a id="20915" href="Monad.Instance.Delay.html#20899" class="Bound">X</a> <a id="20917" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="20919" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="20922" href="Monad.Instance.Delay.html#20901" class="Bound">Y</a><a id="20923" class="Symbol">}</a> <a id="20925" class="Symbol"></a> <a id="20927" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="20935" href="Monad.Instance.Delay.html#20911" class="Bound">f</a> <a id="20937" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="20939" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="20943" class="Symbol">{</a><a id="20944" href="Monad.Instance.Delay.html#20899" class="Bound">X</a><a id="20945" class="Symbol">}</a> <a id="20947" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="20949" href="Monad.Instance.Delay.html#20911" class="Bound">f</a>
<a id="20959" href="Monad.Instance.Delay.html#20883" class="Function">identityʳ&#39;</a> <a id="20970" class="Symbol">{</a><a id="20971" href="Monad.Instance.Delay.html#20971" class="Bound">X</a><a id="20972" class="Symbol">}</a> <a id="20974" class="Symbol">{</a><a id="20975" href="Monad.Instance.Delay.html#20975" class="Bound">Y</a><a id="20976" class="Symbol">}</a> <a id="20978" class="Symbol">{</a><a id="20979" href="Monad.Instance.Delay.html#20979" class="Bound">f</a><a id="20980" class="Symbol">}</a> <a id="20982" class="Symbol">=</a> <a id="20984" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="21001" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21009" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21011" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21013" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="21055" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21058" href="Categories.Morphism.Reasoning.Core.html#6986" class="Function">insertˡ</a> <a id="21066" class="Symbol">(</a><a id="21067" href="Categories.Morphism.html#1586" class="Function">_≅_.isoˡ</a> <a id="21076" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="21081" class="Symbol">)</a> <a id="21083" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="21091" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21104" class="Symbol">(</a><a id="21105" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="21111" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21113" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21117" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21119" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21127" href="Monad.Instance.Delay.html#20979" class="Bound">f</a><a id="21128" class="Symbol">)</a> <a id="21130" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21132" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="21158" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21161" class="Symbol">(</a><a id="21162" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="21170" class="Symbol">(</a><a id="21171" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="21181" href="Monad.Instance.Delay.html#20979" class="Bound">f</a><a id="21182" class="Symbol">))</a> <a id="21185" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="21193" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21205" class="Symbol">(</a><a id="21206" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="21212" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21214" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="21216" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21220" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21222" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21224" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="21226" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="21229" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21231" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21239" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21241" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="21243" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21245" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="21248" class="Symbol">)</a> <a id="21250" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21252" href="Monad.Instance.Delay.html#2135" class="Function">now</a> <a id="21259" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21262" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="21268" class="Symbol">(</a><a id="21269" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="21275" href="Monad.Instance.Delay.html#2272" class="Function">unitlaw</a><a id="21282" class="Symbol">)</a> <a id="21284" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21296" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="21302" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21304" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="21306" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21310" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21312" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21314" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="21316" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="21319" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21321" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21329" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21331" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="21333" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21335" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="21350" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21353" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="21361" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a> <a id="21369" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21381" href="Monad.Instance.Delay.html#2101" class="Function">out⁻¹</a> <a id="21387" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21389" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21393" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21395" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21435" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21438" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="21446" class="Symbol">(</a><a id="21447" href="Categories.Morphism.html#1586" class="Function">_≅_.isoˡ</a> <a id="21456" href="Monad.Instance.Delay.html#1952" class="Function">out-≅</a><a id="21461" class="Symbol">)</a> <a id="21463" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21475" href="Monad.Instance.Delay.html#20979" class="Bound">f</a> <a id="21529" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="21540" href="Monad.Instance.Delay.html#21540" class="Function">assoc&#39;</a> <a id="21547" class="Symbol">:</a> <a id="21549" class="Symbol"></a> <a id="21551" class="Symbol">{</a><a id="21552" href="Monad.Instance.Delay.html#21552" class="Bound">X</a> <a id="21554" href="Monad.Instance.Delay.html#21554" class="Bound">Y</a> <a id="21556" href="Monad.Instance.Delay.html#21556" class="Bound">Z</a> <a id="21558" class="Symbol">:</a> <a id="21560" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="21563" class="Symbol">}</a> <a id="21565" class="Symbol">{</a><a id="21566" href="Monad.Instance.Delay.html#21566" class="Bound">g</a> <a id="21568" class="Symbol">:</a> <a id="21570" href="Monad.Instance.Delay.html#21552" class="Bound">X</a> <a id="21572" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="21574" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="21577" href="Monad.Instance.Delay.html#21554" class="Bound">Y</a><a id="21578" class="Symbol">}</a> <a id="21580" class="Symbol">{</a><a id="21581" href="Monad.Instance.Delay.html#21581" class="Bound">h</a> <a id="21583" class="Symbol">:</a> <a id="21585" href="Monad.Instance.Delay.html#21554" class="Bound">Y</a> <a id="21587" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="21589" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="21592" href="Monad.Instance.Delay.html#21556" class="Bound">Z</a><a id="21593" class="Symbol">}</a> <a id="21595" class="Symbol"></a> <a id="21597" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21605" class="Symbol">(</a><a id="21606" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21614" href="Monad.Instance.Delay.html#21581" class="Bound">h</a> <a id="21616" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21618" href="Monad.Instance.Delay.html#21566" class="Bound">g</a><a id="21619" class="Symbol">)</a> <a id="21621" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="21623" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21631" href="Monad.Instance.Delay.html#21581" class="Bound">h</a> <a id="21633" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21635" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21643" href="Monad.Instance.Delay.html#21566" class="Bound">g</a>
<a id="21653" href="Monad.Instance.Delay.html#21540" class="Function">assoc&#39;</a> <a id="21660" class="Symbol">{</a><a id="21661" href="Monad.Instance.Delay.html#21661" class="Bound">X</a><a id="21662" class="Symbol">}</a> <a id="21664" class="Symbol">{</a><a id="21665" href="Monad.Instance.Delay.html#21665" class="Bound">Y</a><a id="21666" class="Symbol">}</a> <a id="21668" class="Symbol">{</a><a id="21669" href="Monad.Instance.Delay.html#21669" class="Bound">Z</a><a id="21670" class="Symbol">}</a> <a id="21672" class="Symbol">{</a><a id="21673" href="Monad.Instance.Delay.html#21673" class="Bound">g</a><a id="21674" class="Symbol">}</a> <a id="21676" class="Symbol">{</a><a id="21677" href="Monad.Instance.Delay.html#21677" class="Bound">h</a><a id="21678" class="Symbol">}</a> <a id="21680" class="Symbol">=</a> <a id="21682" href="Monad.Instance.Delay.html#9642" class="Function">extend&#39;-unique</a> <a id="21697" class="Symbol">(</a><a id="21698" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21706" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21708" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21710" href="Monad.Instance.Delay.html#21673" class="Bound">g</a><a id="21711" class="Symbol">)</a> <a id="21713" class="Symbol">(</a><a id="21714" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21722" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21724" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21726" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21734" href="Monad.Instance.Delay.html#21673" class="Bound">g</a><a id="21735" class="Symbol">)</a> <a id="21737" class="Symbol">(</a><a id="21738" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="21755" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21759" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21761" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21769" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21771" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21773" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21781" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="21821" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21824" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="21830" class="Symbol">(</a><a id="21831" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="21841" href="Monad.Instance.Delay.html#21677" class="Bound">h</a><a id="21842" class="Symbol">)</a> <a id="21844" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21856" class="Symbol">(</a><a id="21857" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="21859" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21863" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21865" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21867" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="21869" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="21872" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21874" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21882" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21884" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="21886" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21888" href="Monad.Instance.Delay.html#2116" class="Function">out</a><a id="21891" class="Symbol">)</a> <a id="21893" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21895" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21903" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="21922" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="21925" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="21931" class="Symbol">(</a><a id="21932" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="21942" href="Monad.Instance.Delay.html#21673" class="Bound">g</a><a id="21943" class="Symbol">)</a> <a id="21945" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="21957" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="21959" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21963" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21965" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21967" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="21969" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="21972" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21974" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="21982" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="21984" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="21986" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21988" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="21990" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="21994" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="21996" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="21998" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22000" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22003" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22005" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22013" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22015" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22017" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22019" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22023" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22026" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="22032" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="22036" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="22048" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="22050" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="22052" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22056" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22058" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22060" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22062" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22065" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22067" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22075" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22077" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22079" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22081" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22085" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22087" href="Monad.Instance.Delay.html#21673" class="Bound">g</a>
<a id="22100" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22102" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="22104" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22108" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22110" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22112" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22114" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22117" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22119" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22127" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22129" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22131" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22133" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22136" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22138" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22146" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22148" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22150" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22152" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22166" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22169" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="22178" class="Symbol">(</a><a id="22179" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="22185" class="Symbol">(</a><a id="22186" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="22188" class="Symbol">(</a><a id="22189" href="Monad.Instance.Delay.html#8294" class="Function">extendlaw</a> <a id="22199" href="Monad.Instance.Delay.html#21677" class="Bound">h</a><a id="22200" class="Symbol">)))</a> <a id="22204" class="Symbol">(</a><a id="22205" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="22211" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="22218" class="Symbol">)</a> <a id="22220" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="22228" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="22240" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="22242" class="Symbol">(</a><a id="22243" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22247" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22249" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22257" href="Monad.Instance.Delay.html#21677" class="Bound">h</a><a id="22258" class="Symbol">)</a> <a id="22260" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22262" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22264" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22266" class="Symbol">(</a><a id="22267" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22270" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22272" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22280" href="Monad.Instance.Delay.html#21677" class="Bound">h</a><a id="22281" class="Symbol">)</a> <a id="22283" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22285" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22293" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22295" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22297" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22299" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22306" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22309" class="Symbol">(</a><a id="22310" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="22319" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="22325" href="Categories.Category.Core.html#715" class="Function">assoc</a><a id="22330" class="Symbol">)</a> <a id="22332" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="22340" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="22352" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="22354" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22358" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22360" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22368" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22370" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22372" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22374" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="22376" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="22379" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22381" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22389" href="Monad.Instance.Delay.html#21677" class="Bound">h</a> <a id="22391" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22393" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22401" href="Monad.Instance.Delay.html#21673" class="Bound">g</a> <a id="22403" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="22405" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22407" href="Monad.Instance.Delay.html#2116" class="Function">out</a> <a id="22418" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a><a id="22419" class="Symbol">)</a>
<a id="22438" href="Monad.Instance.Delay.html#22438" class="Function">extend-≈&#39;</a> <a id="22448" class="Symbol">:</a> <a id="22450" class="Symbol"></a> <a id="22452" class="Symbol">{</a><a id="22453" href="Monad.Instance.Delay.html#22453" class="Bound">X</a><a id="22454" class="Symbol">}</a> <a id="22456" class="Symbol">{</a><a id="22457" href="Monad.Instance.Delay.html#22457" class="Bound">Y</a><a id="22458" class="Symbol">}</a> <a id="22460" class="Symbol">{</a><a id="22461" href="Monad.Instance.Delay.html#22461" class="Bound">f</a> <a id="22463" href="Monad.Instance.Delay.html#22463" class="Bound">g</a> <a id="22465" class="Symbol">:</a> <a id="22467" href="Monad.Instance.Delay.html#22453" class="Bound">X</a> <a id="22469" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="22471" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="22474" href="Monad.Instance.Delay.html#22457" class="Bound">Y</a><a id="22475" class="Symbol">}</a> <a id="22477" class="Symbol"></a> <a id="22479" href="Monad.Instance.Delay.html#22461" class="Bound">f</a> <a id="22481" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="22483" href="Monad.Instance.Delay.html#22463" class="Bound">g</a> <a id="22485" class="Symbol"></a> <a id="22487" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22495" href="Monad.Instance.Delay.html#22461" class="Bound">f</a> <a id="22497" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="22499" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="22507" href="Monad.Instance.Delay.html#22463" class="Bound">g</a>
<a id="22517" href="Monad.Instance.Delay.html#22438" class="Function">extend-≈&#39;</a> <a id="22527" class="Symbol">{</a><a id="22528" href="Monad.Instance.Delay.html#22528" class="Bound">X</a><a id="22529" class="Symbol">}</a> <a id="22531" class="Symbol">{</a><a id="22532" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22533" class="Symbol">}</a> <a id="22535" class="Symbol">{</a><a id="22536" href="Monad.Instance.Delay.html#22536" class="Bound">f</a><a id="22537" class="Symbol">}</a> <a id="22539" class="Symbol">{</a><a id="22540" href="Monad.Instance.Delay.html#22540" class="Bound">g</a><a id="22541" class="Symbol">}</a> <a id="22543" href="Monad.Instance.Delay.html#22543" class="Bound">eq</a> <a id="22546" class="Symbol">=</a> <a id="22548" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="22564" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="22566" class="Symbol">(</a><a id="22567" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22569" class="Symbol">(</a><a id="22570" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22581" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22582" class="Symbol">)</a> <a id="22584" class="Symbol">{</a><a id="22585" class="Argument">A</a> <a id="22587" class="Symbol">=</a> <a id="22589" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="22593" href="Monad.Instance.Delay.html#22536" class="Bound">f</a> <a id="22595" class="Symbol">})</a> <a id="22598" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22600" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="22603" class="Symbol">{</a><a id="22604" class="Argument">B</a> <a id="22606" class="Symbol">=</a> <a id="22608" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="22611" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22612" class="Symbol">}</a> <a id="22622" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22625" class="Symbol">(</a><a id="22626" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="22635" class="Symbol">(</a><a id="22636" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22647" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22648" class="Symbol">)</a> <a id="22650" class="Symbol">(</a><a id="22651" class="Keyword">record</a> <a id="22658" class="Symbol">{</a> <a id="22660" href="Categories.Functor.Coalgebra.html#1411" class="Field">f</a> <a id="22662" class="Symbol">=</a> <a id="22664" class="Symbol">(</a><a id="22665" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="22667" class="Symbol">(</a><a id="22668" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22670" class="Symbol">(</a><a id="22671" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22682" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22683" class="Symbol">)</a> <a id="22685" class="Symbol">{</a><a id="22686" class="Argument">A</a> <a id="22688" class="Symbol">=</a> <a id="22690" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="22694" href="Monad.Instance.Delay.html#22540" class="Bound">g</a> <a id="22696" class="Symbol">})</a> <a id="22699" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22701" href="Category.Ambient.html#2115" class="Function">idC</a><a id="22704" class="Symbol">)</a> <a id="22706" class="Symbol">;</a> <a id="22708" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="22717" class="Symbol">=</a> <a id="22719" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="22738" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="22740" class="Symbol">(</a><a id="22741" href="Categories.Object.Terminal.html#905" class="Field"></a> <a id="22743" class="Symbol">(</a><a id="22744" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22755" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22756" class="Symbol">))</a> <a id="22759" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22761" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="22763" class="Symbol">(</a><a id="22764" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22766" class="Symbol">(</a><a id="22767" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22778" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22779" class="Symbol">))</a> <a id="22782" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22784" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="22788" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22791" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="22799" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="22809" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="22824" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="22826" class="Symbol">(</a><a id="22827" href="Categories.Object.Terminal.html#905" class="Field"></a> <a id="22829" class="Symbol">(</a><a id="22830" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22841" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22842" class="Symbol">))</a> <a id="22845" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22847" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="22849" class="Symbol">(</a><a id="22850" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22852" class="Symbol">(</a><a id="22853" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22864" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22865" class="Symbol">))</a> <a id="22874" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="22877" href="Categories.Functor.Coalgebra.html#1433" class="Field">commutes</a> <a id="22886" class="Symbol">(</a><a id="22887" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22889" class="Symbol">(</a><a id="22890" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22901" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22902" class="Symbol">))</a> <a id="22905" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="22920" class="Symbol">(</a><a id="22921" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="22925" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="22928" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="22930" class="Symbol">(</a><a id="22931" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="22933" class="Symbol">(</a><a id="22934" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="22945" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="22946" class="Symbol">)))</a> <a id="22950" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="22952" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="22954" class="Symbol">(</a><a id="22955" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="22959" href="Monad.Instance.Delay.html#22540" class="Bound">g</a><a id="22960" class="Symbol">)</a> <a id="22970" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="22974" href="Categories.Functor.Core.html#696" class="Field">Functor.F-resp-≈</a> <a id="22991" class="Symbol">(</a><a id="22992" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a> <a id="22994" href="Categories.Category.Cocartesian.html#3335" class="Function Operator">+-</a><a id="22996" class="Symbol">)</a> <a id="22998" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="23008" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="23012" href="Monad.Instance.Delay.html#19868" class="Function">αf≈αg</a> <a id="23018" href="Monad.Instance.Delay.html#22543" class="Bound">eq</a> <a id="23021" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="23036" class="Symbol">(</a><a id="23037" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="23041" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="23044" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="23046" class="Symbol">(</a><a id="23047" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="23049" class="Symbol">(</a><a id="23050" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="23061" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="23062" class="Symbol">))</a> <a id="23065" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="23067" href="Category.Ambient.html#2115" class="Function">idC</a><a id="23070" class="Symbol">)</a> <a id="23072" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="23074" href="Categories.Functor.Coalgebra.html#585" class="Field">α</a> <a id="23076" class="Symbol">(</a><a id="23077" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="23081" href="Monad.Instance.Delay.html#22536" class="Bound">f</a><a id="23082" class="Symbol">)</a> <a id="23086" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a> <a id="23088" class="Symbol">}))</a>
<a id="23104" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="23112" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="23125" class="Symbol">(</a><a id="23126" href="Monad.Instance.Delay.html#1644" class="Field">u</a> <a id="23128" class="Symbol">(</a><a id="23129" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="23131" class="Symbol">(</a><a id="23132" href="Monad.Instance.Delay.html#1739" class="Field">coalgebras</a> <a id="23143" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="23144" class="Symbol">)</a> <a id="23146" class="Symbol">{</a><a id="23147" class="Argument">A</a> <a id="23149" class="Symbol">=</a> <a id="23151" href="Monad.Instance.Delay.html#7879" class="Function">alg</a> <a id="23155" href="Monad.Instance.Delay.html#22540" class="Bound">g</a> <a id="23157" class="Symbol">})</a> <a id="23160" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="23162" href="Category.Ambient.html#2115" class="Function">idC</a><a id="23165" class="Symbol">)</a> <a id="23167" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="23169" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="23172" class="Symbol">{</a><a id="23173" class="Argument">B</a> <a id="23175" class="Symbol">=</a> <a id="23177" href="Monad.Instance.Delay.html#7773" class="Function">D₀</a> <a id="23180" href="Monad.Instance.Delay.html#22532" class="Bound">Y</a><a id="23181" class="Symbol">}</a> <a id="23183" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="23186" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="23196" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="23204" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="23216" href="Monad.Instance.Delay.html#8028" class="Function">extend&#39;</a> <a id="23224" href="Monad.Instance.Delay.html#22540" class="Bound">g</a> <a id="23274" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="DelayM.monad"></a><a id="23281" href="Monad.Instance.Delay.html#23281" class="Function">monad</a> <a id="23287" class="Symbol">:</a> <a id="23289" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="23295" href="Category.Ambient.html#1757" class="Field">C</a>
<a id="23301" href="Monad.Instance.Delay.html#23281" class="Function">monad</a> <a id="23307" class="Symbol">=</a> <a id="23309" href="Categories.Monad.Construction.Kleisli.html#1000" class="Function">Kleisli⇒Monad</a> <a id="23323" href="Category.Ambient.html#1757" class="Field">C</a> <a id="23325" href="Monad.Instance.Delay.html#19476" class="Function">kleisli</a>
<a id="23338" class="Comment">-- redundant but convenient to have</a>
<a id="DelayM.functor"></a><a id="23378" href="Monad.Instance.Delay.html#23378" class="Function">functor</a> <a id="23386" class="Symbol">:</a> <a id="23388" href="Categories.Functor.html#283" class="Function">Endofunctor</a> <a id="23400" href="Category.Ambient.html#1757" class="Field">C</a>
<a id="23406" href="Monad.Instance.Delay.html#23378" class="Function">functor</a> <a id="23414" class="Symbol">=</a> <a id="23416" href="Categories.Monad.html#525" class="Field">Monad.F</a> <a id="23424" href="Monad.Instance.Delay.html#23281" class="Function">monad</a>
</pre>
</body>
</html>