bsc-leon-vatthauer/agda/bsc-thesis/Function.Base.html
2024-02-09 17:53:52 +01:00

272 lines
No EOL
76 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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><head><meta charset="utf-8"><title>Function.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Simple combinators working solely on and with functions</a>
<a id="165" class="Comment">------------------------------------------------------------------------</a>
<a id="239" class="Comment">-- The contents of this module is also accessible via the `Function`</a>
<a id="308" class="Comment">-- module. See `Function.Strict` for strict versions of these</a>
<a id="370" class="Comment">-- combinators.</a>
<a id="387" class="Symbol">{-#</a> <a id="391" class="Keyword">OPTIONS</a> <a id="399" class="Pragma">--cubical-compatible</a> <a id="420" class="Pragma">--safe</a> <a id="427" class="Symbol">#-}</a>
<a id="432" class="Keyword">module</a> <a id="439" href="Function.Base.html" class="Module">Function.Base</a> <a id="453" class="Keyword">where</a>
<a id="460" class="Keyword">open</a> <a id="465" class="Keyword">import</a> <a id="472" href="Level.html" class="Module">Level</a> <a id="478" class="Keyword">using</a> <a id="484" class="Symbol">(</a><a id="485" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="490" class="Symbol">)</a>
<a id="493" class="Keyword">private</a>
<a id="503" class="Keyword">variable</a>
<a id="516" href="Function.Base.html#516" class="Generalizable">a</a> <a id="518" href="Function.Base.html#518" class="Generalizable">b</a> <a id="520" href="Function.Base.html#520" class="Generalizable">c</a> <a id="522" href="Function.Base.html#522" class="Generalizable">d</a> <a id="524" href="Function.Base.html#524" class="Generalizable">e</a> <a id="526" class="Symbol">:</a> <a id="528" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="538" href="Function.Base.html#538" class="Generalizable">A</a> <a id="540" class="Symbol">:</a> <a id="542" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="546" href="Function.Base.html#516" class="Generalizable">a</a>
<a id="552" href="Function.Base.html#552" class="Generalizable">B</a> <a id="554" class="Symbol">:</a> <a id="556" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="560" href="Function.Base.html#518" class="Generalizable">b</a>
<a id="566" href="Function.Base.html#566" class="Generalizable">C</a> <a id="568" class="Symbol">:</a> <a id="570" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="574" href="Function.Base.html#520" class="Generalizable">c</a>
<a id="580" href="Function.Base.html#580" class="Generalizable">D</a> <a id="582" class="Symbol">:</a> <a id="584" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="588" href="Function.Base.html#522" class="Generalizable">d</a>
<a id="594" href="Function.Base.html#594" class="Generalizable">E</a> <a id="596" class="Symbol">:</a> <a id="598" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="602" href="Function.Base.html#524" class="Generalizable">e</a>
<a id="605" class="Comment">------------------------------------------------------------------------</a>
<a id="678" class="Comment">-- Some simple functions</a>
<a id="id"></a><a id="704" href="Function.Base.html#704" class="Function">id</a> <a id="707" class="Symbol">:</a> <a id="709" href="Function.Base.html#538" class="Generalizable">A</a> <a id="711" class="Symbol"></a> <a id="713" href="Function.Base.html#538" class="Generalizable">A</a>
<a id="715" href="Function.Base.html#704" class="Function">id</a> <a id="718" href="Function.Base.html#718" class="Bound">x</a> <a id="720" class="Symbol">=</a> <a id="722" href="Function.Base.html#718" class="Bound">x</a>
<a id="const"></a><a id="725" href="Function.Base.html#725" class="Function">const</a> <a id="731" class="Symbol">:</a> <a id="733" href="Function.Base.html#538" class="Generalizable">A</a> <a id="735" class="Symbol"></a> <a id="737" href="Function.Base.html#552" class="Generalizable">B</a> <a id="739" class="Symbol"></a> <a id="741" href="Function.Base.html#538" class="Generalizable">A</a>
<a id="743" href="Function.Base.html#725" class="Function">const</a> <a id="749" href="Function.Base.html#749" class="Bound">x</a> <a id="751" class="Symbol">=</a> <a id="753" class="Symbol">λ</a> <a id="755" href="Function.Base.html#755" class="Bound">_</a> <a id="757" class="Symbol"></a> <a id="759" href="Function.Base.html#749" class="Bound">x</a>
<a id="constᵣ"></a><a id="762" href="Function.Base.html#762" class="Function">constᵣ</a> <a id="769" class="Symbol">:</a> <a id="771" href="Function.Base.html#538" class="Generalizable">A</a> <a id="773" class="Symbol"></a> <a id="775" href="Function.Base.html#552" class="Generalizable">B</a> <a id="777" class="Symbol"></a> <a id="779" href="Function.Base.html#552" class="Generalizable">B</a>
<a id="781" href="Function.Base.html#762" class="Function">constᵣ</a> <a id="788" class="Symbol">_</a> <a id="790" class="Symbol">=</a> <a id="792" href="Function.Base.html#704" class="Function">id</a>
<a id="796" class="Comment">------------------------------------------------------------------------</a>
<a id="869" class="Comment">-- Operations on dependent functions</a>
<a id="907" class="Comment">-- These are functions whose output has a type that depends on the</a>
<a id="974" class="Comment">-- value of the input to the function.</a>
<a id="1014" class="Keyword">infixr</a> <a id="1021" class="Number">9</a> <a id="1023" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="1027" href="Function.Base.html#1303" class="Function Operator">_∘₂_</a>
<a id="1032" class="Keyword">infixl</a> <a id="1039" class="Number">8</a> <a id="1041" href="Function.Base.html#2394" class="Function Operator">_ˢ_</a>
<a id="1045" class="Keyword">infixl</a> <a id="1052" class="Number">0</a> <a id="1054" href="Function.Base.html#2127" class="Function Operator">_|&gt;_</a>
<a id="1059" class="Keyword">infix</a> <a id="1066" class="Number">0</a> <a id="1068" href="Function.Base.html#6700" class="Function Operator">case_return_of_</a>
<a id="1084" class="Keyword">infixr</a> <a id="1091" class="Number">-1</a> <a id="1094" href="Function.Base.html#1974" class="Function Operator">_$_</a>
<a id="1099" class="Comment">-- Composition</a>
<a id="_∘_"></a><a id="1115" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="1119" class="Symbol">:</a> <a id="1121" class="Symbol"></a> <a id="1123" class="Symbol">{</a><a id="1124" href="Function.Base.html#1124" class="Bound">A</a> <a id="1126" class="Symbol">:</a> <a id="1128" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1132" href="Function.Base.html#516" class="Generalizable">a</a><a id="1133" class="Symbol">}</a> <a id="1135" class="Symbol">{</a><a id="1136" href="Function.Base.html#1136" class="Bound">B</a> <a id="1138" class="Symbol">:</a> <a id="1140" href="Function.Base.html#1124" class="Bound">A</a> <a id="1142" class="Symbol"></a> <a id="1144" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1148" href="Function.Base.html#518" class="Generalizable">b</a><a id="1149" class="Symbol">}</a> <a id="1151" class="Symbol">{</a><a id="1152" href="Function.Base.html#1152" class="Bound">C</a> <a id="1154" class="Symbol">:</a> <a id="1156" class="Symbol">{</a><a id="1157" href="Function.Base.html#1157" class="Bound">x</a> <a id="1159" class="Symbol">:</a> <a id="1161" href="Function.Base.html#1124" class="Bound">A</a><a id="1162" class="Symbol">}</a> <a id="1164" class="Symbol"></a> <a id="1166" href="Function.Base.html#1136" class="Bound">B</a> <a id="1168" href="Function.Base.html#1157" class="Bound">x</a> <a id="1170" class="Symbol"></a> <a id="1172" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1176" href="Function.Base.html#520" class="Generalizable">c</a><a id="1177" class="Symbol">}</a> <a id="1179" class="Symbol"></a>
<a id="1187" class="Symbol">(∀</a> <a id="1190" class="Symbol">{</a><a id="1191" href="Function.Base.html#1191" class="Bound">x</a><a id="1192" class="Symbol">}</a> <a id="1194" class="Symbol">(</a><a id="1195" href="Function.Base.html#1195" class="Bound">y</a> <a id="1197" class="Symbol">:</a> <a id="1199" href="Function.Base.html#1136" class="Bound">B</a> <a id="1201" href="Function.Base.html#1191" class="Bound">x</a><a id="1202" class="Symbol">)</a> <a id="1204" class="Symbol"></a> <a id="1206" href="Function.Base.html#1152" class="Bound">C</a> <a id="1208" href="Function.Base.html#1195" class="Bound">y</a><a id="1209" class="Symbol">)</a> <a id="1211" class="Symbol"></a> <a id="1213" class="Symbol">(</a><a id="1214" href="Function.Base.html#1214" class="Bound">g</a> <a id="1216" class="Symbol">:</a> <a id="1218" class="Symbol">(</a><a id="1219" href="Function.Base.html#1219" class="Bound">x</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Function.Base.html#1124" class="Bound">A</a><a id="1224" class="Symbol">)</a> <a id="1226" class="Symbol"></a> <a id="1228" href="Function.Base.html#1136" class="Bound">B</a> <a id="1230" href="Function.Base.html#1219" class="Bound">x</a><a id="1231" class="Symbol">)</a> <a id="1233" class="Symbol"></a>
<a id="1241" class="Symbol">((</a><a id="1243" href="Function.Base.html#1243" class="Bound">x</a> <a id="1245" class="Symbol">:</a> <a id="1247" href="Function.Base.html#1124" class="Bound">A</a><a id="1248" class="Symbol">)</a> <a id="1250" class="Symbol"></a> <a id="1252" href="Function.Base.html#1152" class="Bound">C</a> <a id="1254" class="Symbol">(</a><a id="1255" href="Function.Base.html#1214" class="Bound">g</a> <a id="1257" href="Function.Base.html#1243" class="Bound">x</a><a id="1258" class="Symbol">))</a>
<a id="1261" href="Function.Base.html#1261" class="Bound">f</a> <a id="1263" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1265" href="Function.Base.html#1265" class="Bound">g</a> <a id="1267" class="Symbol">=</a> <a id="1269" class="Symbol">λ</a> <a id="1271" href="Function.Base.html#1271" class="Bound">x</a> <a id="1273" class="Symbol"></a> <a id="1275" href="Function.Base.html#1261" class="Bound">f</a> <a id="1277" class="Symbol">(</a><a id="1278" href="Function.Base.html#1265" class="Bound">g</a> <a id="1280" href="Function.Base.html#1271" class="Bound">x</a><a id="1281" class="Symbol">)</a>
<a id="1283" class="Symbol">{-#</a> <a id="1287" class="Keyword">INLINE</a> <a id="1294" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="1298" class="Symbol">#-}</a>
<a id="_∘₂_"></a><a id="1303" href="Function.Base.html#1303" class="Function Operator">_∘₂_</a> <a id="1308" class="Symbol">:</a> <a id="1310" class="Symbol"></a> <a id="1312" class="Symbol">{</a><a id="1313" href="Function.Base.html#1313" class="Bound">A₁</a> <a id="1316" class="Symbol">:</a> <a id="1318" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1322" href="Function.Base.html#516" class="Generalizable">a</a><a id="1323" class="Symbol">}</a> <a id="1325" class="Symbol">{</a><a id="1326" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1329" class="Symbol">:</a> <a id="1331" href="Function.Base.html#1313" class="Bound">A₁</a> <a id="1334" class="Symbol"></a> <a id="1336" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1340" href="Function.Base.html#522" class="Generalizable">d</a><a id="1341" class="Symbol">}</a>
<a id="1352" class="Symbol">{</a><a id="1353" href="Function.Base.html#1353" class="Bound">B</a> <a id="1355" class="Symbol">:</a> <a id="1357" class="Symbol">(</a><a id="1358" href="Function.Base.html#1358" class="Bound">x</a> <a id="1360" class="Symbol">:</a> <a id="1362" href="Function.Base.html#1313" class="Bound">A₁</a><a id="1364" class="Symbol">)</a> <a id="1366" class="Symbol"></a> <a id="1368" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1371" href="Function.Base.html#1358" class="Bound">x</a> <a id="1373" class="Symbol"></a> <a id="1375" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1379" href="Function.Base.html#518" class="Generalizable">b</a><a id="1380" class="Symbol">}</a>
<a id="1391" class="Symbol">{</a><a id="1392" href="Function.Base.html#1392" class="Bound">C</a> <a id="1394" class="Symbol">:</a> <a id="1396" class="Symbol">{</a><a id="1397" href="Function.Base.html#1397" class="Bound">x</a> <a id="1399" class="Symbol">:</a> <a id="1401" href="Function.Base.html#1313" class="Bound">A₁</a><a id="1403" class="Symbol">}</a> <a id="1405" class="Symbol"></a> <a id="1407" class="Symbol">{</a><a id="1408" href="Function.Base.html#1408" class="Bound">y</a> <a id="1410" class="Symbol">:</a> <a id="1412" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1415" href="Function.Base.html#1397" class="Bound">x</a><a id="1416" class="Symbol">}</a> <a id="1418" class="Symbol"></a> <a id="1420" href="Function.Base.html#1353" class="Bound">B</a> <a id="1422" href="Function.Base.html#1397" class="Bound">x</a> <a id="1424" href="Function.Base.html#1408" class="Bound">y</a> <a id="1426" class="Symbol"></a> <a id="1428" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1432" href="Function.Base.html#520" class="Generalizable">c</a><a id="1433" class="Symbol">}</a> <a id="1435" class="Symbol"></a>
<a id="1444" class="Symbol">({</a><a id="1446" href="Function.Base.html#1446" class="Bound">x</a> <a id="1448" class="Symbol">:</a> <a id="1450" href="Function.Base.html#1313" class="Bound">A₁</a><a id="1452" class="Symbol">}</a> <a id="1454" class="Symbol"></a> <a id="1456" class="Symbol">{</a><a id="1457" href="Function.Base.html#1457" class="Bound">y</a> <a id="1459" class="Symbol">:</a> <a id="1461" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1464" href="Function.Base.html#1446" class="Bound">x</a><a id="1465" class="Symbol">}</a> <a id="1467" class="Symbol"></a> <a id="1469" class="Symbol">(</a><a id="1470" href="Function.Base.html#1470" class="Bound">z</a> <a id="1472" class="Symbol">:</a> <a id="1474" href="Function.Base.html#1353" class="Bound">B</a> <a id="1476" href="Function.Base.html#1446" class="Bound">x</a> <a id="1478" href="Function.Base.html#1457" class="Bound">y</a><a id="1479" class="Symbol">)</a> <a id="1481" class="Symbol"></a> <a id="1483" href="Function.Base.html#1392" class="Bound">C</a> <a id="1485" href="Function.Base.html#1470" class="Bound">z</a><a id="1486" class="Symbol">)</a> <a id="1488" class="Symbol"></a>
<a id="1497" class="Symbol">(</a><a id="1498" href="Function.Base.html#1498" class="Bound">g</a> <a id="1500" class="Symbol">:</a> <a id="1502" class="Symbol">(</a><a id="1503" href="Function.Base.html#1503" class="Bound">x</a> <a id="1505" class="Symbol">:</a> <a id="1507" href="Function.Base.html#1313" class="Bound">A₁</a><a id="1509" class="Symbol">)</a> <a id="1511" class="Symbol"></a> <a id="1513" class="Symbol">(</a><a id="1514" href="Function.Base.html#1514" class="Bound">y</a> <a id="1516" class="Symbol">:</a> <a id="1518" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1521" href="Function.Base.html#1503" class="Bound">x</a><a id="1522" class="Symbol">)</a> <a id="1524" class="Symbol"></a> <a id="1526" href="Function.Base.html#1353" class="Bound">B</a> <a id="1528" href="Function.Base.html#1503" class="Bound">x</a> <a id="1530" href="Function.Base.html#1514" class="Bound">y</a><a id="1531" class="Symbol">)</a> <a id="1533" class="Symbol"></a>
<a id="1542" class="Symbol">((</a><a id="1544" href="Function.Base.html#1544" class="Bound">x</a> <a id="1546" class="Symbol">:</a> <a id="1548" href="Function.Base.html#1313" class="Bound">A₁</a><a id="1550" class="Symbol">)</a> <a id="1552" class="Symbol"></a> <a id="1554" class="Symbol">(</a><a id="1555" href="Function.Base.html#1555" class="Bound">y</a> <a id="1557" class="Symbol">:</a> <a id="1559" href="Function.Base.html#1326" class="Bound">A₂</a> <a id="1562" href="Function.Base.html#1544" class="Bound">x</a><a id="1563" class="Symbol">)</a> <a id="1565" class="Symbol"></a> <a id="1567" href="Function.Base.html#1392" class="Bound">C</a> <a id="1569" class="Symbol">(</a><a id="1570" href="Function.Base.html#1498" class="Bound">g</a> <a id="1572" href="Function.Base.html#1544" class="Bound">x</a> <a id="1574" href="Function.Base.html#1555" class="Bound">y</a><a id="1575" class="Symbol">))</a>
<a id="1578" href="Function.Base.html#1578" class="Bound">f</a> <a id="1580" href="Function.Base.html#1303" class="Function Operator">∘₂</a> <a id="1583" href="Function.Base.html#1583" class="Bound">g</a> <a id="1585" class="Symbol">=</a> <a id="1587" class="Symbol">λ</a> <a id="1589" href="Function.Base.html#1589" class="Bound">x</a> <a id="1591" href="Function.Base.html#1591" class="Bound">y</a> <a id="1593" class="Symbol"></a> <a id="1595" href="Function.Base.html#1578" class="Bound">f</a> <a id="1597" class="Symbol">(</a><a id="1598" href="Function.Base.html#1583" class="Bound">g</a> <a id="1600" href="Function.Base.html#1589" class="Bound">x</a> <a id="1602" href="Function.Base.html#1591" class="Bound">y</a><a id="1603" class="Symbol">)</a>
<a id="1606" class="Comment">-- Flipping order of arguments</a>
<a id="flip"></a><a id="1638" href="Function.Base.html#1638" class="Function">flip</a> <a id="1643" class="Symbol">:</a> <a id="1645" class="Symbol"></a> <a id="1647" class="Symbol">{</a><a id="1648" href="Function.Base.html#1648" class="Bound">A</a> <a id="1650" class="Symbol">:</a> <a id="1652" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1656" href="Function.Base.html#516" class="Generalizable">a</a><a id="1657" class="Symbol">}</a> <a id="1659" class="Symbol">{</a><a id="1660" href="Function.Base.html#1660" class="Bound">B</a> <a id="1662" class="Symbol">:</a> <a id="1664" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1668" href="Function.Base.html#518" class="Generalizable">b</a><a id="1669" class="Symbol">}</a> <a id="1671" class="Symbol">{</a><a id="1672" href="Function.Base.html#1672" class="Bound">C</a> <a id="1674" class="Symbol">:</a> <a id="1676" href="Function.Base.html#1648" class="Bound">A</a> <a id="1678" class="Symbol"></a> <a id="1680" href="Function.Base.html#1660" class="Bound">B</a> <a id="1682" class="Symbol"></a> <a id="1684" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1688" href="Function.Base.html#520" class="Generalizable">c</a><a id="1689" class="Symbol">}</a> <a id="1691" class="Symbol"></a>
<a id="1700" class="Symbol">((</a><a id="1702" href="Function.Base.html#1702" class="Bound">x</a> <a id="1704" class="Symbol">:</a> <a id="1706" href="Function.Base.html#1648" class="Bound">A</a><a id="1707" class="Symbol">)</a> <a id="1709" class="Symbol">(</a><a id="1710" href="Function.Base.html#1710" class="Bound">y</a> <a id="1712" class="Symbol">:</a> <a id="1714" href="Function.Base.html#1660" class="Bound">B</a><a id="1715" class="Symbol">)</a> <a id="1717" class="Symbol"></a> <a id="1719" href="Function.Base.html#1672" class="Bound">C</a> <a id="1721" href="Function.Base.html#1702" class="Bound">x</a> <a id="1723" href="Function.Base.html#1710" class="Bound">y</a><a id="1724" class="Symbol">)</a> <a id="1726" class="Symbol"></a> <a id="1728" class="Symbol">((</a><a id="1730" href="Function.Base.html#1730" class="Bound">y</a> <a id="1732" class="Symbol">:</a> <a id="1734" href="Function.Base.html#1660" class="Bound">B</a><a id="1735" class="Symbol">)</a> <a id="1737" class="Symbol">(</a><a id="1738" href="Function.Base.html#1738" class="Bound">x</a> <a id="1740" class="Symbol">:</a> <a id="1742" href="Function.Base.html#1648" class="Bound">A</a><a id="1743" class="Symbol">)</a> <a id="1745" class="Symbol"></a> <a id="1747" href="Function.Base.html#1672" class="Bound">C</a> <a id="1749" href="Function.Base.html#1738" class="Bound">x</a> <a id="1751" href="Function.Base.html#1730" class="Bound">y</a><a id="1752" class="Symbol">)</a>
<a id="1754" href="Function.Base.html#1638" class="Function">flip</a> <a id="1759" href="Function.Base.html#1759" class="Bound">f</a> <a id="1761" class="Symbol">=</a> <a id="1763" class="Symbol">λ</a> <a id="1765" href="Function.Base.html#1765" class="Bound">y</a> <a id="1767" href="Function.Base.html#1767" class="Bound">x</a> <a id="1769" class="Symbol"></a> <a id="1771" href="Function.Base.html#1759" class="Bound">f</a> <a id="1773" href="Function.Base.html#1767" class="Bound">x</a> <a id="1775" href="Function.Base.html#1765" class="Bound">y</a>
<a id="1777" class="Symbol">{-#</a> <a id="1781" class="Keyword">INLINE</a> <a id="1788" href="Function.Base.html#1638" class="Function">flip</a> <a id="1793" class="Symbol">#-}</a>
<a id="1798" class="Comment">-- Application - note that _$_ is right associative, as in Haskell.</a>
<a id="1866" class="Comment">-- If you want a left associative infix application operator, use</a>
<a id="1932" class="Comment">-- RawFunctor._&lt;$&gt;_ from Effect.Functor.</a>
<a id="_$_"></a><a id="1974" href="Function.Base.html#1974" class="Function Operator">_$_</a> <a id="1978" class="Symbol">:</a> <a id="1980" class="Symbol"></a> <a id="1982" class="Symbol">{</a><a id="1983" href="Function.Base.html#1983" class="Bound">A</a> <a id="1985" class="Symbol">:</a> <a id="1987" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1991" href="Function.Base.html#516" class="Generalizable">a</a><a id="1992" class="Symbol">}</a> <a id="1994" class="Symbol">{</a><a id="1995" href="Function.Base.html#1995" class="Bound">B</a> <a id="1997" class="Symbol">:</a> <a id="1999" href="Function.Base.html#1983" class="Bound">A</a> <a id="2001" class="Symbol"></a> <a id="2003" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2007" href="Function.Base.html#518" class="Generalizable">b</a><a id="2008" class="Symbol">}</a> <a id="2010" class="Symbol"></a>
<a id="2018" class="Symbol">((</a><a id="2020" href="Function.Base.html#2020" class="Bound">x</a> <a id="2022" class="Symbol">:</a> <a id="2024" href="Function.Base.html#1983" class="Bound">A</a><a id="2025" class="Symbol">)</a> <a id="2027" class="Symbol"></a> <a id="2029" href="Function.Base.html#1995" class="Bound">B</a> <a id="2031" href="Function.Base.html#2020" class="Bound">x</a><a id="2032" class="Symbol">)</a> <a id="2034" class="Symbol"></a> <a id="2036" class="Symbol">((</a><a id="2038" href="Function.Base.html#2038" class="Bound">x</a> <a id="2040" class="Symbol">:</a> <a id="2042" href="Function.Base.html#1983" class="Bound">A</a><a id="2043" class="Symbol">)</a> <a id="2045" class="Symbol"></a> <a id="2047" href="Function.Base.html#1995" class="Bound">B</a> <a id="2049" href="Function.Base.html#2038" class="Bound">x</a><a id="2050" class="Symbol">)</a>
<a id="2052" href="Function.Base.html#2052" class="Bound">f</a> <a id="2054" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="2056" href="Function.Base.html#2056" class="Bound">x</a> <a id="2058" class="Symbol">=</a> <a id="2060" href="Function.Base.html#2052" class="Bound">f</a> <a id="2062" href="Function.Base.html#2056" class="Bound">x</a>
<a id="2064" class="Symbol">{-#</a> <a id="2068" class="Keyword">INLINE</a> <a id="2075" href="Function.Base.html#1974" class="Function Operator">_$_</a> <a id="2079" class="Symbol">#-}</a>
<a id="2084" class="Comment">-- Flipped application (aka pipe-forward)</a>
<a id="_|&gt;_"></a><a id="2127" href="Function.Base.html#2127" class="Function Operator">_|&gt;_</a> <a id="2132" class="Symbol">:</a> <a id="2134" class="Symbol"></a> <a id="2136" class="Symbol">{</a><a id="2137" href="Function.Base.html#2137" class="Bound">A</a> <a id="2139" class="Symbol">:</a> <a id="2141" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2145" href="Function.Base.html#516" class="Generalizable">a</a><a id="2146" class="Symbol">}</a> <a id="2148" class="Symbol">{</a><a id="2149" href="Function.Base.html#2149" class="Bound">B</a> <a id="2151" class="Symbol">:</a> <a id="2153" href="Function.Base.html#2137" class="Bound">A</a> <a id="2155" class="Symbol"></a> <a id="2157" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2161" href="Function.Base.html#518" class="Generalizable">b</a><a id="2162" class="Symbol">}</a> <a id="2164" class="Symbol"></a>
<a id="2173" class="Symbol">(</a><a id="2174" href="Function.Base.html#2174" class="Bound">a</a> <a id="2176" class="Symbol">:</a> <a id="2178" href="Function.Base.html#2137" class="Bound">A</a><a id="2179" class="Symbol">)</a> <a id="2181" class="Symbol"></a> <a id="2183" class="Symbol">(∀</a> <a id="2186" href="Function.Base.html#2186" class="Bound">a</a> <a id="2188" class="Symbol"></a> <a id="2190" href="Function.Base.html#2149" class="Bound">B</a> <a id="2192" href="Function.Base.html#2186" class="Bound">a</a><a id="2193" class="Symbol">)</a> <a id="2195" class="Symbol"></a> <a id="2197" href="Function.Base.html#2149" class="Bound">B</a> <a id="2199" href="Function.Base.html#2174" class="Bound">a</a>
<a id="2201" href="Function.Base.html#2127" class="Function Operator">_|&gt;_</a> <a id="2206" class="Symbol">=</a> <a id="2208" href="Function.Base.html#1638" class="Function">flip</a> <a id="2213" href="Function.Base.html#1974" class="Function Operator">_$_</a>
<a id="2217" class="Symbol">{-#</a> <a id="2221" class="Keyword">INLINE</a> <a id="2228" href="Function.Base.html#2127" class="Function Operator">_|&gt;_</a> <a id="2233" class="Symbol">#-}</a>
<a id="2238" class="Comment">-- The S combinator - written infix as in Conor McBride&#39;s paper</a>
<a id="2302" class="Comment">-- &quot;Outrageous but Meaningful Coincidences: Dependent type-safe syntax</a>
<a id="2373" class="Comment">-- and evaluation&quot;.</a>
<a id="_ˢ_"></a><a id="2394" href="Function.Base.html#2394" class="Function Operator">_ˢ_</a> <a id="2398" class="Symbol">:</a> <a id="2400" class="Symbol"></a> <a id="2402" class="Symbol">{</a><a id="2403" href="Function.Base.html#2403" class="Bound">A</a> <a id="2405" class="Symbol">:</a> <a id="2407" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2411" href="Function.Base.html#516" class="Generalizable">a</a><a id="2412" class="Symbol">}</a> <a id="2414" class="Symbol">{</a><a id="2415" href="Function.Base.html#2415" class="Bound">B</a> <a id="2417" class="Symbol">:</a> <a id="2419" href="Function.Base.html#2403" class="Bound">A</a> <a id="2421" class="Symbol"></a> <a id="2423" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2427" href="Function.Base.html#518" class="Generalizable">b</a><a id="2428" class="Symbol">}</a> <a id="2430" class="Symbol">{</a><a id="2431" href="Function.Base.html#2431" class="Bound">C</a> <a id="2433" class="Symbol">:</a> <a id="2435" class="Symbol">(</a><a id="2436" href="Function.Base.html#2436" class="Bound">x</a> <a id="2438" class="Symbol">:</a> <a id="2440" href="Function.Base.html#2403" class="Bound">A</a><a id="2441" class="Symbol">)</a> <a id="2443" class="Symbol"></a> <a id="2445" href="Function.Base.html#2415" class="Bound">B</a> <a id="2447" href="Function.Base.html#2436" class="Bound">x</a> <a id="2449" class="Symbol"></a> <a id="2451" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2455" href="Function.Base.html#520" class="Generalizable">c</a><a id="2456" class="Symbol">}</a> <a id="2458" class="Symbol"></a>
<a id="2466" class="Symbol">((</a><a id="2468" href="Function.Base.html#2468" class="Bound">x</a> <a id="2470" class="Symbol">:</a> <a id="2472" href="Function.Base.html#2403" class="Bound">A</a><a id="2473" class="Symbol">)</a> <a id="2475" class="Symbol">(</a><a id="2476" href="Function.Base.html#2476" class="Bound">y</a> <a id="2478" class="Symbol">:</a> <a id="2480" href="Function.Base.html#2415" class="Bound">B</a> <a id="2482" href="Function.Base.html#2468" class="Bound">x</a><a id="2483" class="Symbol">)</a> <a id="2485" class="Symbol"></a> <a id="2487" href="Function.Base.html#2431" class="Bound">C</a> <a id="2489" href="Function.Base.html#2468" class="Bound">x</a> <a id="2491" href="Function.Base.html#2476" class="Bound">y</a><a id="2492" class="Symbol">)</a> <a id="2494" class="Symbol"></a>
<a id="2502" class="Symbol">(</a><a id="2503" href="Function.Base.html#2503" class="Bound">g</a> <a id="2505" class="Symbol">:</a> <a id="2507" class="Symbol">(</a><a id="2508" href="Function.Base.html#2508" class="Bound">x</a> <a id="2510" class="Symbol">:</a> <a id="2512" href="Function.Base.html#2403" class="Bound">A</a><a id="2513" class="Symbol">)</a> <a id="2515" class="Symbol"></a> <a id="2517" href="Function.Base.html#2415" class="Bound">B</a> <a id="2519" href="Function.Base.html#2508" class="Bound">x</a><a id="2520" class="Symbol">)</a> <a id="2522" class="Symbol"></a>
<a id="2530" class="Symbol">((</a><a id="2532" href="Function.Base.html#2532" class="Bound">x</a> <a id="2534" class="Symbol">:</a> <a id="2536" href="Function.Base.html#2403" class="Bound">A</a><a id="2537" class="Symbol">)</a> <a id="2539" class="Symbol"></a> <a id="2541" href="Function.Base.html#2431" class="Bound">C</a> <a id="2543" href="Function.Base.html#2532" class="Bound">x</a> <a id="2545" class="Symbol">(</a><a id="2546" href="Function.Base.html#2503" class="Bound">g</a> <a id="2548" href="Function.Base.html#2532" class="Bound">x</a><a id="2549" class="Symbol">))</a>
<a id="2552" href="Function.Base.html#2552" class="Bound">f</a> <a id="2554" href="Function.Base.html#2394" class="Function Operator">ˢ</a> <a id="2556" href="Function.Base.html#2556" class="Bound">g</a> <a id="2558" class="Symbol">=</a> <a id="2560" class="Symbol">λ</a> <a id="2562" href="Function.Base.html#2562" class="Bound">x</a> <a id="2564" class="Symbol"></a> <a id="2566" href="Function.Base.html#2552" class="Bound">f</a> <a id="2568" href="Function.Base.html#2562" class="Bound">x</a> <a id="2570" class="Symbol">(</a><a id="2571" href="Function.Base.html#2556" class="Bound">g</a> <a id="2573" href="Function.Base.html#2562" class="Bound">x</a><a id="2574" class="Symbol">)</a>
<a id="2576" class="Symbol">{-#</a> <a id="2580" class="Keyword">INLINE</a> <a id="2587" href="Function.Base.html#2394" class="Function Operator">_ˢ_</a> <a id="2591" class="Symbol">#-}</a>
<a id="2596" class="Comment">-- Converting between implicit and explicit function spaces.</a>
<a id="_$-"></a><a id="2658" href="Function.Base.html#2658" class="Function Operator">_$-</a> <a id="2662" class="Symbol">:</a> <a id="2664" class="Symbol"></a> <a id="2666" class="Symbol">{</a><a id="2667" href="Function.Base.html#2667" class="Bound">A</a> <a id="2669" class="Symbol">:</a> <a id="2671" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2675" href="Function.Base.html#516" class="Generalizable">a</a><a id="2676" class="Symbol">}</a> <a id="2678" class="Symbol">{</a><a id="2679" href="Function.Base.html#2679" class="Bound">B</a> <a id="2681" class="Symbol">:</a> <a id="2683" href="Function.Base.html#2667" class="Bound">A</a> <a id="2685" class="Symbol"></a> <a id="2687" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2691" href="Function.Base.html#518" class="Generalizable">b</a><a id="2692" class="Symbol">}</a> <a id="2694" class="Symbol"></a> <a id="2696" class="Symbol">((</a><a id="2698" href="Function.Base.html#2698" class="Bound">x</a> <a id="2700" class="Symbol">:</a> <a id="2702" href="Function.Base.html#2667" class="Bound">A</a><a id="2703" class="Symbol">)</a> <a id="2705" class="Symbol"></a> <a id="2707" href="Function.Base.html#2679" class="Bound">B</a> <a id="2709" href="Function.Base.html#2698" class="Bound">x</a><a id="2710" class="Symbol">)</a> <a id="2712" class="Symbol"></a> <a id="2714" class="Symbol">({</a><a id="2716" href="Function.Base.html#2716" class="Bound">x</a> <a id="2718" class="Symbol">:</a> <a id="2720" href="Function.Base.html#2667" class="Bound">A</a><a id="2721" class="Symbol">}</a> <a id="2723" class="Symbol"></a> <a id="2725" href="Function.Base.html#2679" class="Bound">B</a> <a id="2727" href="Function.Base.html#2716" class="Bound">x</a><a id="2728" class="Symbol">)</a>
<a id="2730" href="Function.Base.html#2730" class="Bound">f</a> <a id="2732" href="Function.Base.html#2658" class="Function Operator">$-</a> <a id="2735" class="Symbol">=</a> <a id="2737" href="Function.Base.html#2730" class="Bound">f</a> <a id="2739" class="Symbol">_</a>
<a id="2741" class="Symbol">{-#</a> <a id="2745" class="Keyword">INLINE</a> <a id="2752" href="Function.Base.html#2658" class="Function Operator">_$-</a> <a id="2756" class="Symbol">#-}</a>
<a id="λ-"></a><a id="2761" href="Function.Base.html#2761" class="Function">λ-</a> <a id="2764" class="Symbol">:</a> <a id="2766" class="Symbol"></a> <a id="2768" class="Symbol">{</a><a id="2769" href="Function.Base.html#2769" class="Bound">A</a> <a id="2771" class="Symbol">:</a> <a id="2773" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2777" href="Function.Base.html#516" class="Generalizable">a</a><a id="2778" class="Symbol">}</a> <a id="2780" class="Symbol">{</a><a id="2781" href="Function.Base.html#2781" class="Bound">B</a> <a id="2783" class="Symbol">:</a> <a id="2785" href="Function.Base.html#2769" class="Bound">A</a> <a id="2787" class="Symbol"></a> <a id="2789" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2793" href="Function.Base.html#518" class="Generalizable">b</a><a id="2794" class="Symbol">}</a> <a id="2796" class="Symbol"></a> <a id="2798" class="Symbol">({</a><a id="2800" href="Function.Base.html#2800" class="Bound">x</a> <a id="2802" class="Symbol">:</a> <a id="2804" href="Function.Base.html#2769" class="Bound">A</a><a id="2805" class="Symbol">}</a> <a id="2807" class="Symbol"></a> <a id="2809" href="Function.Base.html#2781" class="Bound">B</a> <a id="2811" href="Function.Base.html#2800" class="Bound">x</a><a id="2812" class="Symbol">)</a> <a id="2814" class="Symbol"></a> <a id="2816" class="Symbol">((</a><a id="2818" href="Function.Base.html#2818" class="Bound">x</a> <a id="2820" class="Symbol">:</a> <a id="2822" href="Function.Base.html#2769" class="Bound">A</a><a id="2823" class="Symbol">)</a> <a id="2825" class="Symbol"></a> <a id="2827" href="Function.Base.html#2781" class="Bound">B</a> <a id="2829" href="Function.Base.html#2818" class="Bound">x</a><a id="2830" class="Symbol">)</a>
<a id="2832" href="Function.Base.html#2761" class="Function">λ-</a> <a id="2835" href="Function.Base.html#2835" class="Bound">f</a> <a id="2837" class="Symbol">=</a> <a id="2839" class="Symbol">λ</a> <a id="2841" href="Function.Base.html#2841" class="Bound">x</a> <a id="2843" class="Symbol"></a> <a id="2845" href="Function.Base.html#2835" class="Bound">f</a>
<a id="2847" class="Symbol">{-#</a> <a id="2851" class="Keyword">INLINE</a> <a id="2858" href="Function.Base.html#2761" class="Function">λ-</a> <a id="2861" class="Symbol">#-}</a>
<a id="2866" class="Comment">-- Case expressions (to be used with pattern-matching lambdas, see</a>
<a id="2933" class="Comment">-- README.Case).</a>
<a id="case_returning_of_"></a><a id="2951" href="Function.Base.html#2951" class="Function Operator">case_returning_of_</a> <a id="2970" class="Symbol">:</a> <a id="2972" class="Symbol"></a> <a id="2974" class="Symbol">{</a><a id="2975" href="Function.Base.html#2975" class="Bound">A</a> <a id="2977" class="Symbol">:</a> <a id="2979" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2983" href="Function.Base.html#516" class="Generalizable">a</a><a id="2984" class="Symbol">}</a> <a id="2986" class="Symbol">(</a><a id="2987" href="Function.Base.html#2987" class="Bound">x</a> <a id="2989" class="Symbol">:</a> <a id="2991" href="Function.Base.html#2975" class="Bound">A</a><a id="2992" class="Symbol">)</a> <a id="2994" class="Symbol">(</a><a id="2995" href="Function.Base.html#2995" class="Bound">B</a> <a id="2997" class="Symbol">:</a> <a id="2999" href="Function.Base.html#2975" class="Bound">A</a> <a id="3001" class="Symbol"></a> <a id="3003" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3007" href="Function.Base.html#518" class="Generalizable">b</a><a id="3008" class="Symbol">)</a> <a id="3010" class="Symbol"></a>
<a id="3030" class="Symbol">((</a><a id="3032" href="Function.Base.html#3032" class="Bound">x</a> <a id="3034" class="Symbol">:</a> <a id="3036" href="Function.Base.html#2975" class="Bound">A</a><a id="3037" class="Symbol">)</a> <a id="3039" class="Symbol"></a> <a id="3041" href="Function.Base.html#2995" class="Bound">B</a> <a id="3043" href="Function.Base.html#3032" class="Bound">x</a><a id="3044" class="Symbol">)</a> <a id="3046" class="Symbol"></a> <a id="3048" href="Function.Base.html#2995" class="Bound">B</a> <a id="3050" href="Function.Base.html#2987" class="Bound">x</a>
<a id="3052" href="Function.Base.html#2951" class="Function Operator">case</a> <a id="3057" href="Function.Base.html#3057" class="Bound">x</a> <a id="3059" href="Function.Base.html#2951" class="Function Operator">returning</a> <a id="3069" href="Function.Base.html#3069" class="Bound">B</a> <a id="3071" href="Function.Base.html#2951" class="Function Operator">of</a> <a id="3074" href="Function.Base.html#3074" class="Bound">f</a> <a id="3076" class="Symbol">=</a> <a id="3078" href="Function.Base.html#3074" class="Bound">f</a> <a id="3080" href="Function.Base.html#3057" class="Bound">x</a>
<a id="3082" class="Symbol">{-#</a> <a id="3086" class="Keyword">INLINE</a> <a id="3093" href="Function.Base.html#2951" class="Function Operator">case_returning_of_</a> <a id="3112" class="Symbol">#-}</a>
<a id="3117" class="Comment">------------------------------------------------------------------------</a>
<a id="3190" class="Comment">-- Non-dependent versions of dependent operations</a>
<a id="3241" class="Comment">-- Any of the above operations for dependent functions will also work</a>
<a id="3311" class="Comment">-- for non-dependent functions but sometimes Agda has difficulty</a>
<a id="3376" class="Comment">-- inferring the non-dependency. Primed ( = \prime) versions of the</a>
<a id="3445" class="Comment">-- operations are therefore provided below that sometimes have better</a>
<a id="3515" class="Comment">-- inference properties.</a>
<a id="3541" class="Keyword">infixr</a> <a id="3548" class="Number">9</a> <a id="3550" href="Function.Base.html#3626" class="Function Operator">_∘_</a> <a id="3555" href="Function.Base.html#3679" class="Function Operator">_∘₂_</a>
<a id="3561" class="Keyword">infixl</a> <a id="3568" class="Number">0</a> <a id="3570" href="Function.Base.html#3919" class="Function Operator">_|&gt;_</a>
<a id="3576" class="Keyword">infix</a> <a id="3583" class="Number">0</a> <a id="3585" href="Function.Base.html#4042" class="Function Operator">case_of_</a>
<a id="3594" class="Keyword">infixr</a> <a id="3601" class="Number">-1</a> <a id="3604" href="Function.Base.html#3839" class="Function Operator">_$_</a>
<a id="3610" class="Comment">-- Composition</a>
<a id="_∘_"></a><a id="3626" href="Function.Base.html#3626" class="Function Operator">_∘_</a> <a id="3631" class="Symbol">:</a> <a id="3633" class="Symbol">(</a><a id="3634" href="Function.Base.html#552" class="Generalizable">B</a> <a id="3636" class="Symbol"></a> <a id="3638" href="Function.Base.html#566" class="Generalizable">C</a><a id="3639" class="Symbol">)</a> <a id="3641" class="Symbol"></a> <a id="3643" class="Symbol">(</a><a id="3644" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3646" class="Symbol"></a> <a id="3648" href="Function.Base.html#552" class="Generalizable">B</a><a id="3649" class="Symbol">)</a> <a id="3651" class="Symbol"></a> <a id="3653" class="Symbol">(</a><a id="3654" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3656" class="Symbol"></a> <a id="3658" href="Function.Base.html#566" class="Generalizable">C</a><a id="3659" class="Symbol">)</a>
<a id="3661" href="Function.Base.html#3661" class="Bound">f</a> <a id="3663" href="Function.Base.html#3626" class="Function Operator">∘′</a> <a id="3666" href="Function.Base.html#3666" class="Bound">g</a> <a id="3668" class="Symbol">=</a> <a id="3670" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="3674" href="Function.Base.html#3661" class="Bound">f</a> <a id="3676" href="Function.Base.html#3666" class="Bound">g</a>
<a id="_∘₂_"></a><a id="3679" href="Function.Base.html#3679" class="Function Operator">_∘₂_</a> <a id="3685" class="Symbol">:</a> <a id="3687" class="Symbol">(</a><a id="3688" href="Function.Base.html#566" class="Generalizable">C</a> <a id="3690" class="Symbol"></a> <a id="3692" href="Function.Base.html#580" class="Generalizable">D</a><a id="3693" class="Symbol">)</a> <a id="3695" class="Symbol"></a> <a id="3697" class="Symbol">(</a><a id="3698" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3700" class="Symbol"></a> <a id="3702" href="Function.Base.html#552" class="Generalizable">B</a> <a id="3704" class="Symbol"></a> <a id="3706" href="Function.Base.html#566" class="Generalizable">C</a><a id="3707" class="Symbol">)</a> <a id="3709" class="Symbol"></a> <a id="3711" class="Symbol">(</a><a id="3712" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3714" class="Symbol"></a> <a id="3716" href="Function.Base.html#552" class="Generalizable">B</a> <a id="3718" class="Symbol"></a> <a id="3720" href="Function.Base.html#580" class="Generalizable">D</a><a id="3721" class="Symbol">)</a>
<a id="3723" href="Function.Base.html#3723" class="Bound">f</a> <a id="3725" href="Function.Base.html#3679" class="Function Operator">∘₂′</a> <a id="3729" href="Function.Base.html#3729" class="Bound">g</a> <a id="3731" class="Symbol">=</a> <a id="3733" href="Function.Base.html#1303" class="Function Operator">_∘₂_</a> <a id="3738" href="Function.Base.html#3723" class="Bound">f</a> <a id="3740" href="Function.Base.html#3729" class="Bound">g</a>
<a id="3743" class="Comment">-- Flipping order of arguments</a>
<a id="flip"></a><a id="3775" href="Function.Base.html#3775" class="Function">flip</a> <a id="3781" class="Symbol">:</a> <a id="3783" class="Symbol">(</a><a id="3784" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3786" class="Symbol"></a> <a id="3788" href="Function.Base.html#552" class="Generalizable">B</a> <a id="3790" class="Symbol"></a> <a id="3792" href="Function.Base.html#566" class="Generalizable">C</a><a id="3793" class="Symbol">)</a> <a id="3795" class="Symbol"></a> <a id="3797" class="Symbol">(</a><a id="3798" href="Function.Base.html#552" class="Generalizable">B</a> <a id="3800" class="Symbol"></a> <a id="3802" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3804" class="Symbol"></a> <a id="3806" href="Function.Base.html#566" class="Generalizable">C</a><a id="3807" class="Symbol">)</a>
<a id="3809" href="Function.Base.html#3775" class="Function">flip</a> <a id="3815" class="Symbol">=</a> <a id="3817" href="Function.Base.html#1638" class="Function">flip</a>
<a id="3823" class="Comment">-- Application</a>
<a id="_$_"></a><a id="3839" href="Function.Base.html#3839" class="Function Operator">_$_</a> <a id="3844" class="Symbol">:</a> <a id="3846" class="Symbol">(</a><a id="3847" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3849" class="Symbol"></a> <a id="3851" href="Function.Base.html#552" class="Generalizable">B</a><a id="3852" class="Symbol">)</a> <a id="3854" class="Symbol"></a> <a id="3856" class="Symbol">(</a><a id="3857" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3859" class="Symbol"></a> <a id="3861" href="Function.Base.html#552" class="Generalizable">B</a><a id="3862" class="Symbol">)</a>
<a id="3864" href="Function.Base.html#3839" class="Function Operator">_$_</a> <a id="3869" class="Symbol">=</a> <a id="3871" href="Function.Base.html#1974" class="Function Operator">_$_</a>
<a id="3876" class="Comment">-- Flipped application (aka pipe-forward)</a>
<a id="_|&gt;_"></a><a id="3919" href="Function.Base.html#3919" class="Function Operator">_|&gt;_</a> <a id="3925" class="Symbol">:</a> <a id="3927" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3929" class="Symbol"></a> <a id="3931" class="Symbol">(</a><a id="3932" href="Function.Base.html#538" class="Generalizable">A</a> <a id="3934" class="Symbol"></a> <a id="3936" href="Function.Base.html#552" class="Generalizable">B</a><a id="3937" class="Symbol">)</a> <a id="3939" class="Symbol"></a> <a id="3941" href="Function.Base.html#552" class="Generalizable">B</a>
<a id="3943" href="Function.Base.html#3919" class="Function Operator">_|&gt;_</a> <a id="3949" class="Symbol">=</a> <a id="3951" href="Function.Base.html#2127" class="Function Operator">_|&gt;_</a>
<a id="3957" class="Comment">-- Case expressions (to be used with pattern-matching lambdas, see</a>
<a id="4024" class="Comment">-- README.Case).</a>
<a id="case_of_"></a><a id="4042" href="Function.Base.html#4042" class="Function Operator">case_of_</a> <a id="4051" class="Symbol">:</a> <a id="4053" href="Function.Base.html#538" class="Generalizable">A</a> <a id="4055" class="Symbol"></a> <a id="4057" class="Symbol">(</a><a id="4058" href="Function.Base.html#538" class="Generalizable">A</a> <a id="4060" class="Symbol"></a> <a id="4062" href="Function.Base.html#552" class="Generalizable">B</a><a id="4063" class="Symbol">)</a> <a id="4065" class="Symbol"></a> <a id="4067" href="Function.Base.html#552" class="Generalizable">B</a>
<a id="4069" href="Function.Base.html#4042" class="Function Operator">case</a> <a id="4074" href="Function.Base.html#4074" class="Bound">x</a> <a id="4076" href="Function.Base.html#4042" class="Function Operator">of</a> <a id="4079" href="Function.Base.html#4079" class="Bound">f</a> <a id="4081" class="Symbol">=</a> <a id="4083" href="Function.Base.html#2951" class="Function Operator">case</a> <a id="4088" href="Function.Base.html#4074" class="Bound">x</a> <a id="4090" href="Function.Base.html#2951" class="Function Operator">returning</a> <a id="4100" class="Symbol">_</a> <a id="4102" href="Function.Base.html#2951" class="Function Operator">of</a> <a id="4105" href="Function.Base.html#4079" class="Bound">f</a>
<a id="4107" class="Symbol">{-#</a> <a id="4111" class="Keyword">INLINE</a> <a id="4118" href="Function.Base.html#4042" class="Function Operator">case_of_</a> <a id="4127" class="Symbol">#-}</a>
<a id="4132" class="Comment">------------------------------------------------------------------------</a>
<a id="4205" class="Comment">-- Operations that are only defined for non-dependent functions</a>
<a id="4270" class="Keyword">infixl</a> <a id="4277" class="Number">1</a> <a id="4279" href="Function.Base.html#4322" class="Function Operator">_⟨_⟩_</a>
<a id="4285" class="Keyword">infixl</a> <a id="4292" class="Number">0</a> <a id="4294" href="Function.Base.html#4486" class="Function Operator">_∋_</a>
<a id="4299" class="Comment">-- Binary application</a>
<a id="_⟨_⟩_"></a><a id="4322" href="Function.Base.html#4322" class="Function Operator">_⟨_⟩_</a> <a id="4328" class="Symbol">:</a> <a id="4330" href="Function.Base.html#538" class="Generalizable">A</a> <a id="4332" class="Symbol"></a> <a id="4334" class="Symbol">(</a><a id="4335" href="Function.Base.html#538" class="Generalizable">A</a> <a id="4337" class="Symbol"></a> <a id="4339" href="Function.Base.html#552" class="Generalizable">B</a> <a id="4341" class="Symbol"></a> <a id="4343" href="Function.Base.html#566" class="Generalizable">C</a><a id="4344" class="Symbol">)</a> <a id="4346" class="Symbol"></a> <a id="4348" href="Function.Base.html#552" class="Generalizable">B</a> <a id="4350" class="Symbol"></a> <a id="4352" href="Function.Base.html#566" class="Generalizable">C</a>
<a id="4354" href="Function.Base.html#4354" class="Bound">x</a> <a id="4356" href="Function.Base.html#4322" class="Function Operator"></a> <a id="4358" href="Function.Base.html#4358" class="Bound">f</a> <a id="4360" href="Function.Base.html#4322" class="Function Operator"></a> <a id="4362" href="Function.Base.html#4362" class="Bound">y</a> <a id="4364" class="Symbol">=</a> <a id="4366" href="Function.Base.html#4358" class="Bound">f</a> <a id="4368" href="Function.Base.html#4354" class="Bound">x</a> <a id="4370" href="Function.Base.html#4362" class="Bound">y</a>
<a id="4373" class="Comment">-- In Agda you cannot annotate every subexpression with a type</a>
<a id="4436" class="Comment">-- signature. This function can be used instead.</a>
<a id="_∋_"></a><a id="4486" href="Function.Base.html#4486" class="Function Operator">_∋_</a> <a id="4490" class="Symbol">:</a> <a id="4492" class="Symbol">(</a><a id="4493" href="Function.Base.html#4493" class="Bound">A</a> <a id="4495" class="Symbol">:</a> <a id="4497" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4501" href="Function.Base.html#516" class="Generalizable">a</a><a id="4502" class="Symbol">)</a> <a id="4504" class="Symbol"></a> <a id="4506" href="Function.Base.html#4493" class="Bound">A</a> <a id="4508" class="Symbol"></a> <a id="4510" href="Function.Base.html#4493" class="Bound">A</a>
<a id="4512" href="Function.Base.html#4512" class="Bound">A</a> <a id="4514" href="Function.Base.html#4486" class="Function Operator"></a> <a id="4516" href="Function.Base.html#4516" class="Bound">x</a> <a id="4518" class="Symbol">=</a> <a id="4520" href="Function.Base.html#4516" class="Bound">x</a>
<a id="4523" class="Comment">-- Conversely it is sometimes useful to be able to extract the</a>
<a id="4586" class="Comment">-- type of a given expression.</a>
<a id="typeOf"></a><a id="4618" href="Function.Base.html#4618" class="Function">typeOf</a> <a id="4625" class="Symbol">:</a> <a id="4627" class="Symbol">{</a><a id="4628" href="Function.Base.html#4628" class="Bound">A</a> <a id="4630" class="Symbol">:</a> <a id="4632" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4636" href="Function.Base.html#516" class="Generalizable">a</a><a id="4637" class="Symbol">}</a> <a id="4639" class="Symbol"></a> <a id="4641" href="Function.Base.html#4628" class="Bound">A</a> <a id="4643" class="Symbol"></a> <a id="4645" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4649" href="Function.Base.html#516" class="Generalizable">a</a>
<a id="4651" href="Function.Base.html#4618" class="Function">typeOf</a> <a id="4658" class="Symbol">{</a><a id="4659" class="Argument">A</a> <a id="4661" class="Symbol">=</a> <a id="4663" href="Function.Base.html#4663" class="Bound">A</a><a id="4664" class="Symbol">}</a> <a id="4666" class="Symbol">_</a> <a id="4668" class="Symbol">=</a> <a id="4670" href="Function.Base.html#4663" class="Bound">A</a>
<a id="4673" class="Comment">-- Construct an element of the given type by instance search.</a>
<a id="it"></a><a id="4736" href="Function.Base.html#4736" class="Function">it</a> <a id="4739" class="Symbol">:</a> <a id="4741" class="Symbol">{</a><a id="4742" href="Function.Base.html#4742" class="Bound">A</a> <a id="4744" class="Symbol">:</a> <a id="4746" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4750" href="Function.Base.html#516" class="Generalizable">a</a><a id="4751" class="Symbol">}</a> <a id="4753" class="Symbol"></a> <a id="4755" class="Symbol">{{</a><a id="4757" href="Function.Base.html#4742" class="Bound">A</a><a id="4758" class="Symbol">}}</a> <a id="4761" class="Symbol"></a> <a id="4763" href="Function.Base.html#4742" class="Bound">A</a>
<a id="4765" href="Function.Base.html#4736" class="Function">it</a> <a id="4768" class="Symbol">{{</a><a id="4770" href="Function.Base.html#4770" class="Bound">x</a><a id="4771" class="Symbol">}}</a> <a id="4774" class="Symbol">=</a> <a id="4776" href="Function.Base.html#4770" class="Bound">x</a>
<a id="4779" class="Comment">------------------------------------------------------------------------</a>
<a id="4852" class="Comment">-- Composition of a binary function with other functions</a>
<a id="4910" class="Keyword">infixr</a> <a id="4917" class="Number">0</a> <a id="4919" href="Function.Base.html#5039" class="Function Operator">_-⟪_⟫-_</a> <a id="4927" href="Function.Base.html#5813" class="Function Operator">_-⟨_⟫-_</a>
<a id="4935" class="Keyword">infixl</a> <a id="4942" class="Number">0</a> <a id="4944" href="Function.Base.html#5667" class="Function Operator">_-⟪_⟩-_</a>
<a id="4952" class="Keyword">infixr</a> <a id="4959" class="Number">1</a> <a id="4961" href="Function.Base.html#5939" class="Function Operator">_-⟨_⟩-_</a> <a id="4969" href="Function.Base.html#5306" class="Function Operator">_⟫-_</a> <a id="4975" href="Function.Base.html#5545" class="Function Operator">_⟩-_</a>
<a id="4981" class="Keyword">infixl</a> <a id="4988" class="Number">1</a> <a id="4990" href="Function.Base.html#6209" class="Function Operator">_on_</a> <a id="4995" href="Function.Base.html#6092" class="Function Operator">_on₂_</a> <a id="5001" href="Function.Base.html#5183" class="Function Operator">_-⟪_</a> <a id="5007" href="Function.Base.html#5426" class="Function Operator">_-⟨_</a>
<a id="5014" class="Comment">-- Two binary functions</a>
<a id="_-⟪_⟫-_"></a><a id="5039" href="Function.Base.html#5039" class="Function Operator">_-⟪_⟫-_</a> <a id="5047" class="Symbol">:</a> <a id="5049" class="Symbol">(</a><a id="5050" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5052" class="Symbol"></a> <a id="5054" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5056" class="Symbol"></a> <a id="5058" href="Function.Base.html#566" class="Generalizable">C</a><a id="5059" class="Symbol">)</a> <a id="5061" class="Symbol"></a> <a id="5063" class="Symbol">(</a><a id="5064" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5066" class="Symbol"></a> <a id="5068" href="Function.Base.html#580" class="Generalizable">D</a> <a id="5070" class="Symbol"></a> <a id="5072" href="Function.Base.html#594" class="Generalizable">E</a><a id="5073" class="Symbol">)</a> <a id="5075" class="Symbol"></a> <a id="5077" class="Symbol">(</a><a id="5078" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5080" class="Symbol"></a> <a id="5082" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5084" class="Symbol"></a> <a id="5086" href="Function.Base.html#580" class="Generalizable">D</a><a id="5087" class="Symbol">)</a> <a id="5089" class="Symbol"></a> <a id="5091" class="Symbol">(</a><a id="5092" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5094" class="Symbol"></a> <a id="5096" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5098" class="Symbol"></a> <a id="5100" href="Function.Base.html#594" class="Generalizable">E</a><a id="5101" class="Symbol">)</a>
<a id="5103" href="Function.Base.html#5103" class="Bound">f</a> <a id="5105" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5108" href="Function.Base.html#5108" class="Bound Operator">_*_</a> <a id="5112" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5115" href="Function.Base.html#5115" class="Bound">g</a> <a id="5117" class="Symbol">=</a> <a id="5119" class="Symbol">λ</a> <a id="5121" href="Function.Base.html#5121" class="Bound">x</a> <a id="5123" href="Function.Base.html#5123" class="Bound">y</a> <a id="5125" class="Symbol"></a> <a id="5127" href="Function.Base.html#5103" class="Bound">f</a> <a id="5129" href="Function.Base.html#5121" class="Bound">x</a> <a id="5131" href="Function.Base.html#5123" class="Bound">y</a> <a id="5133" href="Function.Base.html#5108" class="Bound Operator">*</a> <a id="5135" href="Function.Base.html#5115" class="Bound">g</a> <a id="5137" href="Function.Base.html#5121" class="Bound">x</a> <a id="5139" href="Function.Base.html#5123" class="Bound">y</a>
<a id="5142" class="Comment">-- A single binary function on the left</a>
<a id="_-⟪_"></a><a id="5183" href="Function.Base.html#5183" class="Function Operator">_-⟪_</a> <a id="5189" class="Symbol">:</a> <a id="5191" class="Symbol">(</a><a id="5192" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5194" class="Symbol"></a> <a id="5196" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5198" class="Symbol"></a> <a id="5200" href="Function.Base.html#566" class="Generalizable">C</a><a id="5201" class="Symbol">)</a> <a id="5203" class="Symbol"></a> <a id="5205" class="Symbol">(</a><a id="5206" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5208" class="Symbol"></a> <a id="5210" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5212" class="Symbol"></a> <a id="5214" href="Function.Base.html#580" class="Generalizable">D</a><a id="5215" class="Symbol">)</a> <a id="5217" class="Symbol"></a> <a id="5219" class="Symbol">(</a><a id="5220" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5222" class="Symbol"></a> <a id="5224" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5226" class="Symbol"></a> <a id="5228" href="Function.Base.html#580" class="Generalizable">D</a><a id="5229" class="Symbol">)</a>
<a id="5231" href="Function.Base.html#5231" class="Bound">f</a> <a id="5233" href="Function.Base.html#5183" class="Function Operator">-⟪</a> <a id="5236" href="Function.Base.html#5236" class="Bound Operator">_*_</a> <a id="5240" href="Function.Base.html#5183" class="Function Operator"></a> <a id="5242" class="Symbol">=</a> <a id="5244" href="Function.Base.html#5231" class="Bound">f</a> <a id="5246" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5249" href="Function.Base.html#5236" class="Bound Operator">_*_</a> <a id="5253" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5256" href="Function.Base.html#762" class="Function">constᵣ</a>
<a id="5264" class="Comment">-- A single binary function on the right</a>
<a id="_⟫-_"></a><a id="5306" href="Function.Base.html#5306" class="Function Operator">_⟫-_</a> <a id="5312" class="Symbol">:</a> <a id="5314" class="Symbol">(</a><a id="5315" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5317" class="Symbol"></a> <a id="5319" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5321" class="Symbol"></a> <a id="5323" href="Function.Base.html#580" class="Generalizable">D</a><a id="5324" class="Symbol">)</a> <a id="5326" class="Symbol"></a> <a id="5328" class="Symbol">(</a><a id="5329" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5331" class="Symbol"></a> <a id="5333" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5335" class="Symbol"></a> <a id="5337" href="Function.Base.html#566" class="Generalizable">C</a><a id="5338" class="Symbol">)</a> <a id="5340" class="Symbol"></a> <a id="5342" class="Symbol">(</a><a id="5343" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5345" class="Symbol"></a> <a id="5347" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5349" class="Symbol"></a> <a id="5351" href="Function.Base.html#580" class="Generalizable">D</a><a id="5352" class="Symbol">)</a>
<a id="5354" href="Function.Base.html#5306" class="Function Operator"></a> <a id="5356" href="Function.Base.html#5356" class="Bound Operator">_*_</a> <a id="5360" href="Function.Base.html#5306" class="Function Operator">⟫-</a> <a id="5363" href="Function.Base.html#5363" class="Bound">g</a> <a id="5365" class="Symbol">=</a> <a id="5367" href="Function.Base.html#725" class="Function">const</a> <a id="5373" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5376" href="Function.Base.html#5356" class="Bound Operator">_*_</a> <a id="5380" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5383" href="Function.Base.html#5363" class="Bound">g</a>
<a id="5386" class="Comment">-- A single unary function on the left</a>
<a id="_-⟨_"></a><a id="5426" href="Function.Base.html#5426" class="Function Operator">_-⟨_</a> <a id="5432" class="Symbol">:</a> <a id="5434" class="Symbol">(</a><a id="5435" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5437" class="Symbol"></a> <a id="5439" href="Function.Base.html#566" class="Generalizable">C</a><a id="5440" class="Symbol">)</a> <a id="5442" class="Symbol"></a> <a id="5444" class="Symbol">(</a><a id="5445" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5447" class="Symbol"></a> <a id="5449" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5451" class="Symbol"></a> <a id="5453" href="Function.Base.html#580" class="Generalizable">D</a><a id="5454" class="Symbol">)</a> <a id="5456" class="Symbol"></a> <a id="5458" class="Symbol">(</a><a id="5459" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5461" class="Symbol"></a> <a id="5463" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5465" class="Symbol"></a> <a id="5467" href="Function.Base.html#580" class="Generalizable">D</a><a id="5468" class="Symbol">)</a>
<a id="5470" href="Function.Base.html#5470" class="Bound">f</a> <a id="5472" href="Function.Base.html#5426" class="Function Operator">-⟨</a> <a id="5475" href="Function.Base.html#5475" class="Bound Operator">_*_</a> <a id="5479" href="Function.Base.html#5426" class="Function Operator"></a> <a id="5481" class="Symbol">=</a> <a id="5483" href="Function.Base.html#5470" class="Bound">f</a> <a id="5485" href="Function.Base.html#1303" class="Function Operator">∘₂</a> <a id="5488" href="Function.Base.html#725" class="Function">const</a> <a id="5494" href="Function.Base.html#5183" class="Function Operator">-⟪</a> <a id="5497" href="Function.Base.html#5475" class="Bound Operator">_*_</a> <a id="5501" href="Function.Base.html#5183" class="Function Operator"></a>
<a id="5504" class="Comment">-- A single unary function on the right</a>
<a id="_⟩-_"></a><a id="5545" href="Function.Base.html#5545" class="Function Operator">_⟩-_</a> <a id="5551" class="Symbol">:</a> <a id="5553" class="Symbol">(</a><a id="5554" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5556" class="Symbol"></a> <a id="5558" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5560" class="Symbol"></a> <a id="5562" href="Function.Base.html#580" class="Generalizable">D</a><a id="5563" class="Symbol">)</a> <a id="5565" class="Symbol"></a> <a id="5567" class="Symbol">(</a><a id="5568" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5570" class="Symbol"></a> <a id="5572" href="Function.Base.html#566" class="Generalizable">C</a><a id="5573" class="Symbol">)</a> <a id="5575" class="Symbol"></a> <a id="5577" class="Symbol">(</a><a id="5578" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5580" class="Symbol"></a> <a id="5582" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5584" class="Symbol"></a> <a id="5586" href="Function.Base.html#580" class="Generalizable">D</a><a id="5587" class="Symbol">)</a>
<a id="5589" href="Function.Base.html#5545" class="Function Operator"></a> <a id="5591" href="Function.Base.html#5591" class="Bound Operator">_*_</a> <a id="5595" href="Function.Base.html#5545" class="Function Operator">⟩-</a> <a id="5598" href="Function.Base.html#5598" class="Bound">g</a> <a id="5600" class="Symbol">=</a> <a id="5602" href="Function.Base.html#5306" class="Function Operator"></a> <a id="5604" href="Function.Base.html#5591" class="Bound Operator">_*_</a> <a id="5608" href="Function.Base.html#5306" class="Function Operator">⟫-</a> <a id="5611" href="Function.Base.html#5598" class="Bound">g</a> <a id="5613" href="Function.Base.html#1303" class="Function Operator">∘₂</a> <a id="5616" href="Function.Base.html#762" class="Function">constᵣ</a>
<a id="5624" class="Comment">-- A binary function and a unary function</a>
<a id="_-⟪_⟩-_"></a><a id="5667" href="Function.Base.html#5667" class="Function Operator">_-⟪_⟩-_</a> <a id="5675" class="Symbol">:</a> <a id="5677" class="Symbol">(</a><a id="5678" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5680" class="Symbol"></a> <a id="5682" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5684" class="Symbol"></a> <a id="5686" href="Function.Base.html#566" class="Generalizable">C</a><a id="5687" class="Symbol">)</a> <a id="5689" class="Symbol"></a> <a id="5691" class="Symbol">(</a><a id="5692" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5694" class="Symbol"></a> <a id="5696" href="Function.Base.html#580" class="Generalizable">D</a> <a id="5698" class="Symbol"></a> <a id="5700" href="Function.Base.html#594" class="Generalizable">E</a><a id="5701" class="Symbol">)</a> <a id="5703" class="Symbol"></a> <a id="5705" class="Symbol">(</a><a id="5706" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5708" class="Symbol"></a> <a id="5710" href="Function.Base.html#580" class="Generalizable">D</a><a id="5711" class="Symbol">)</a> <a id="5713" class="Symbol"></a> <a id="5715" class="Symbol">(</a><a id="5716" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5718" class="Symbol"></a> <a id="5720" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5722" class="Symbol"></a> <a id="5724" href="Function.Base.html#594" class="Generalizable">E</a><a id="5725" class="Symbol">)</a>
<a id="5727" href="Function.Base.html#5727" class="Bound">f</a> <a id="5729" href="Function.Base.html#5667" class="Function Operator">-⟪</a> <a id="5732" href="Function.Base.html#5732" class="Bound Operator">_*_</a> <a id="5736" href="Function.Base.html#5667" class="Function Operator">⟩-</a> <a id="5739" href="Function.Base.html#5739" class="Bound">g</a> <a id="5741" class="Symbol">=</a> <a id="5743" href="Function.Base.html#5727" class="Bound">f</a> <a id="5745" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5748" href="Function.Base.html#5732" class="Bound Operator">_*_</a> <a id="5752" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5755" href="Function.Base.html#5545" class="Function Operator"></a> <a id="5757" href="Function.Base.html#762" class="Function">constᵣ</a> <a id="5764" href="Function.Base.html#5545" class="Function Operator">⟩-</a> <a id="5767" href="Function.Base.html#5739" class="Bound">g</a>
<a id="5770" class="Comment">-- A unary function and a binary function</a>
<a id="_-⟨_⟫-_"></a><a id="5813" href="Function.Base.html#5813" class="Function Operator">_-⟨_⟫-_</a> <a id="5821" class="Symbol">:</a> <a id="5823" class="Symbol">(</a><a id="5824" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5826" class="Symbol"></a> <a id="5828" href="Function.Base.html#566" class="Generalizable">C</a><a id="5829" class="Symbol">)</a> <a id="5831" class="Symbol"></a> <a id="5833" class="Symbol">(</a><a id="5834" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5836" class="Symbol"></a> <a id="5838" href="Function.Base.html#580" class="Generalizable">D</a> <a id="5840" class="Symbol"></a> <a id="5842" href="Function.Base.html#594" class="Generalizable">E</a><a id="5843" class="Symbol">)</a> <a id="5845" class="Symbol"></a> <a id="5847" class="Symbol">(</a><a id="5848" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5850" class="Symbol"></a> <a id="5852" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5854" class="Symbol"></a> <a id="5856" href="Function.Base.html#580" class="Generalizable">D</a><a id="5857" class="Symbol">)</a> <a id="5859" class="Symbol"></a> <a id="5861" class="Symbol">(</a><a id="5862" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5864" class="Symbol"></a> <a id="5866" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5868" class="Symbol"></a> <a id="5870" href="Function.Base.html#594" class="Generalizable">E</a><a id="5871" class="Symbol">)</a>
<a id="5873" href="Function.Base.html#5873" class="Bound">f</a> <a id="5875" href="Function.Base.html#5813" class="Function Operator">-⟨</a> <a id="5878" href="Function.Base.html#5878" class="Bound Operator">_*_</a> <a id="5882" href="Function.Base.html#5813" class="Function Operator">⟫-</a> <a id="5885" href="Function.Base.html#5885" class="Bound">g</a> <a id="5887" class="Symbol">=</a> <a id="5889" href="Function.Base.html#5873" class="Bound">f</a> <a id="5891" href="Function.Base.html#5426" class="Function Operator">-⟨</a> <a id="5894" href="Function.Base.html#725" class="Function">const</a> <a id="5900" href="Function.Base.html#5426" class="Function Operator"></a> <a id="5902" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5905" href="Function.Base.html#5878" class="Bound Operator">_*_</a> <a id="5909" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5912" href="Function.Base.html#5885" class="Bound">g</a>
<a id="5915" class="Comment">-- Two unary functions</a>
<a id="_-⟨_⟩-_"></a><a id="5939" href="Function.Base.html#5939" class="Function Operator">_-⟨_⟩-_</a> <a id="5947" class="Symbol">:</a> <a id="5949" class="Symbol">(</a><a id="5950" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5952" class="Symbol"></a> <a id="5954" href="Function.Base.html#566" class="Generalizable">C</a><a id="5955" class="Symbol">)</a> <a id="5957" class="Symbol"></a> <a id="5959" class="Symbol">(</a><a id="5960" href="Function.Base.html#566" class="Generalizable">C</a> <a id="5962" class="Symbol"></a> <a id="5964" href="Function.Base.html#580" class="Generalizable">D</a> <a id="5966" class="Symbol"></a> <a id="5968" href="Function.Base.html#594" class="Generalizable">E</a><a id="5969" class="Symbol">)</a> <a id="5971" class="Symbol"></a> <a id="5973" class="Symbol">(</a><a id="5974" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5976" class="Symbol"></a> <a id="5978" href="Function.Base.html#580" class="Generalizable">D</a><a id="5979" class="Symbol">)</a> <a id="5981" class="Symbol"></a> <a id="5983" class="Symbol">(</a><a id="5984" href="Function.Base.html#538" class="Generalizable">A</a> <a id="5986" class="Symbol"></a> <a id="5988" href="Function.Base.html#552" class="Generalizable">B</a> <a id="5990" class="Symbol"></a> <a id="5992" href="Function.Base.html#594" class="Generalizable">E</a><a id="5993" class="Symbol">)</a>
<a id="5995" href="Function.Base.html#5995" class="Bound">f</a> <a id="5997" href="Function.Base.html#5939" class="Function Operator">-⟨</a> <a id="6000" href="Function.Base.html#6000" class="Bound Operator">_*_</a> <a id="6004" href="Function.Base.html#5939" class="Function Operator">⟩-</a> <a id="6007" href="Function.Base.html#6007" class="Bound">g</a> <a id="6009" class="Symbol">=</a> <a id="6011" href="Function.Base.html#5995" class="Bound">f</a> <a id="6013" href="Function.Base.html#5426" class="Function Operator">-⟨</a> <a id="6016" href="Function.Base.html#725" class="Function">const</a> <a id="6022" href="Function.Base.html#5426" class="Function Operator"></a> <a id="6024" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="6027" href="Function.Base.html#6000" class="Bound Operator">_*_</a> <a id="6031" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="6034" href="Function.Base.html#5545" class="Function Operator"></a> <a id="6036" href="Function.Base.html#762" class="Function">constᵣ</a> <a id="6043" href="Function.Base.html#5545" class="Function Operator">⟩-</a> <a id="6046" href="Function.Base.html#6007" class="Bound">g</a>
<a id="6049" class="Comment">-- A single binary function on both sides</a>
<a id="_on₂_"></a><a id="6092" href="Function.Base.html#6092" class="Function Operator">_on₂_</a> <a id="6098" class="Symbol">:</a> <a id="6100" class="Symbol">(</a><a id="6101" href="Function.Base.html#566" class="Generalizable">C</a> <a id="6103" class="Symbol"></a> <a id="6105" href="Function.Base.html#566" class="Generalizable">C</a> <a id="6107" class="Symbol"></a> <a id="6109" href="Function.Base.html#580" class="Generalizable">D</a><a id="6110" class="Symbol">)</a> <a id="6112" class="Symbol"></a> <a id="6114" class="Symbol">(</a><a id="6115" href="Function.Base.html#538" class="Generalizable">A</a> <a id="6117" class="Symbol"></a> <a id="6119" href="Function.Base.html#552" class="Generalizable">B</a> <a id="6121" class="Symbol"></a> <a id="6123" href="Function.Base.html#566" class="Generalizable">C</a><a id="6124" class="Symbol">)</a> <a id="6126" class="Symbol"></a> <a id="6128" class="Symbol">(</a><a id="6129" href="Function.Base.html#538" class="Generalizable">A</a> <a id="6131" class="Symbol"></a> <a id="6133" href="Function.Base.html#552" class="Generalizable">B</a> <a id="6135" class="Symbol"></a> <a id="6137" href="Function.Base.html#580" class="Generalizable">D</a><a id="6138" class="Symbol">)</a>
<a id="6140" href="Function.Base.html#6140" class="Bound Operator">_*_</a> <a id="6144" href="Function.Base.html#6092" class="Function Operator">on₂</a> <a id="6148" href="Function.Base.html#6148" class="Bound">f</a> <a id="6150" class="Symbol">=</a> <a id="6152" href="Function.Base.html#6148" class="Bound">f</a> <a id="6154" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="6157" href="Function.Base.html#6140" class="Bound Operator">_*_</a> <a id="6161" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="6164" href="Function.Base.html#6148" class="Bound">f</a>
<a id="6167" class="Comment">-- A single unary function on both sides</a>
<a id="_on_"></a><a id="6209" href="Function.Base.html#6209" class="Function Operator">_on_</a> <a id="6214" class="Symbol">:</a> <a id="6216" class="Symbol">(</a><a id="6217" href="Function.Base.html#552" class="Generalizable">B</a> <a id="6219" class="Symbol"></a> <a id="6221" href="Function.Base.html#552" class="Generalizable">B</a> <a id="6223" class="Symbol"></a> <a id="6225" href="Function.Base.html#566" class="Generalizable">C</a><a id="6226" class="Symbol">)</a> <a id="6228" class="Symbol"></a> <a id="6230" class="Symbol">(</a><a id="6231" href="Function.Base.html#538" class="Generalizable">A</a> <a id="6233" class="Symbol"></a> <a id="6235" href="Function.Base.html#552" class="Generalizable">B</a><a id="6236" class="Symbol">)</a> <a id="6238" class="Symbol"></a> <a id="6240" class="Symbol">(</a><a id="6241" href="Function.Base.html#538" class="Generalizable">A</a> <a id="6243" class="Symbol"></a> <a id="6245" href="Function.Base.html#538" class="Generalizable">A</a> <a id="6247" class="Symbol"></a> <a id="6249" href="Function.Base.html#566" class="Generalizable">C</a><a id="6250" class="Symbol">)</a>
<a id="6252" href="Function.Base.html#6252" class="Bound Operator">_*_</a> <a id="6256" href="Function.Base.html#6209" class="Function Operator">on</a> <a id="6259" href="Function.Base.html#6259" class="Bound">f</a> <a id="6261" class="Symbol">=</a> <a id="6263" href="Function.Base.html#6259" class="Bound">f</a> <a id="6265" href="Function.Base.html#5939" class="Function Operator">-⟨</a> <a id="6268" href="Function.Base.html#6252" class="Bound Operator">_*_</a> <a id="6272" href="Function.Base.html#5939" class="Function Operator">⟩-</a> <a id="6275" href="Function.Base.html#6259" class="Bound">f</a>
<a id="6279" class="Comment">------------------------------------------------------------------------</a>
<a id="6352" class="Comment">-- DEPRECATED NAMES</a>
<a id="6372" class="Comment">------------------------------------------------------------------------</a>
<a id="6445" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="6516" class="Comment">-- not guaranteed.</a>
<a id="6536" class="Comment">-- Version 1.4</a>
<a id="_-[_]-_"></a><a id="6552" href="Function.Base.html#6552" class="Function Operator">_-[_]-_</a> <a id="6560" class="Symbol">=</a> <a id="6562" href="Function.Base.html#5039" class="Function Operator">_-⟪_⟫-_</a>
<a id="6570" class="Symbol">{-#</a> <a id="6574" class="Keyword">WARNING_ON_USAGE</a> <a id="6591" class="Pragma">_-[_]-_</a>
<a id="6599" class="String">&quot;Warning: Function._-[_]-_ was deprecated in v1.4.
Please use _-⟪_⟫-_ instead.&quot;</a>
<a id="6679" class="Symbol">#-}</a>
<a id="6684" class="Comment">-- Version 2.0</a>
<a id="case_return_of_"></a><a id="6700" href="Function.Base.html#6700" class="Function Operator">case_return_of_</a> <a id="6716" class="Symbol">=</a> <a id="6718" href="Function.Base.html#2951" class="Function Operator">case_returning_of_</a>
<a id="6737" class="Symbol">{-#</a> <a id="6741" class="Keyword">WARNING_ON_USAGE</a> <a id="6758" class="Pragma">case_return_of_</a>
<a id="6774" class="String">&quot;case_return_of_ was deprecated in v2.0.
Please use case_returning_of_ instead.&quot;</a>
<a id="6855" class="Symbol">#-}</a>
</pre></body></html>