Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-angg "LATEX/2019notes-adjunctions.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2019notes-adjunctions.tex"))
% (defun d () (interactive) (find-xpdfpage "~/LATEX/2019notes-adjunctions.pdf"))
% (defun e () (interactive) (find-LATEX "2019notes-adjunctions.tex"))
% (defun u () (interactive) (find-latex-upload-links "2019notes-adjunctions"))
% (find-xpdfpage "~/LATEX/2019notes-adjunctions.pdf")
% (find-sh0 "cp -v  ~/LATEX/2019notes-adjunctions.pdf /tmp/")
%   file:///home/edrx/LATEX/2019notes-adjunctions.pdf
%               file:///tmp/2019notes-adjunctions.pdf
% http://angg.twu.net/LATEX/2019notes-adjunctions.pdf
\documentclass[oneside]{book}
\usepackage[colorlinks]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
\usepackage{xcolor}                % (find-es "tex" "xcolor")
%\usepackage{color}                % (find-LATEX "edrx15.sty" "colors")
%\usepackage{colorweb}             % (find-es "tex" "colorweb")
%\usepackage{tikz}
%
% (find-dn6 "preamble6.lua" "preamble0")
\usepackage{proof}   % For derivation trees ("%:" lines)
\input diagxy        % For 2D diagrams ("%D" lines)
\xyoption{curve}     % For the ".curve=" feature in 2D diagrams
%
\usepackage{edrx15}               % (find-LATEX "edrx15.sty")
\input edrxaccents.tex            % (find-LATEX "edrxaccents.tex")
\input edrxchars.tex              % (find-LATEX "edrxchars.tex")
\input edrxheadfoot.tex           % (find-LATEX "edrxheadfoot.tex")
\input edrxgac2.tex               % (find-LATEX "edrxgac2.tex")
%
\begin{document}

\catcode`\^^J=10
\directlua{dofile "dednat6load.lua"}  % (find-LATEX "dednat6load.lua")

\directlua{dofile "edrxtikz.lua"} % (find-LATEX "edrxtikz.lua")
\directlua{dofile "edrxpict.lua"} % (find-LATEX "edrxpict.lua")
%L V.__tostring = function (v) return format("(%.3f,%.3f)", v[1], v[2]) end




% (find-LATEXfile "2019ebl-abs.tex" "Five applications")
% (cwm "monads")
% (cwmp 19)

(For ``five applications'')

Cartesian categories:

\leavevmode
\fbox{%
$\begin{array}{l}
  f:A→C \\
  g:B→D \\
  π:A×B→A \\
  π':A×B→B \\
  f∘π:A×B→C \\
  g∘π':A×B→D \\
  〈f∘π,g∘π'〉:A×B→C×D \\
  f×g = 〈f∘π,g∘π'〉 \\
  A×g = 〈π,g∘π'〉 \\
  f×B = 〈f∘π,g〉 \\
\end{array}$}
%
%D diagram Ax
%D 2Dx     100 +30 +30 +30
%D 2D  100 A1  A2  B1  B2
%D 2D
%D 2D  +30 A3  A4  B3  B4
%D 2D
%D ren A1 A2 A3 A4 ==> B (A×)B C (A×)C
%D ren B1 B2 B3 B4 ==> B A×B C A×C
%D
%D (( A1 A2 |->
%D    A1 A3 -> .plabel= l f 
%D    A2 A4 -> .plabel= r (A×)f 
%D    A3 A4 |->
%D ))
%D (( B1 B2 |->
%D    B1 B3 -> .plabel= l f 
%D    B2 B4 -> .plabel= r \foo 
%D    B3 B4 |->
%D ))
%D enddiagram
%D
$$\pu
  \def\foo{\sm{λ(a,b).(a.f(b)) \\
               = 〈π,f∘π'〉 \\
          }}
  \cdiag{Ax}
$$







\end{document}

% Local Variables:
% coding: utf-8-unix
% End: