\message{Partial emulation of Francis Borceux's diagrams using...............}
% you need Paul Taylor's commutative diagrams package loaded as well.
\input diagrams
\message{<Emulation (PT) version 0.21, 16 June 1994>}

% The macro names have been taken from Francis Borceux's "diagram.tex"
% and replaced with equivalent commands in Paul Taylor's package.

% The "ternary" (4x2), curved, multiple and free arrows have not yet
% been implemented.  To do so requires an option to be added to PT's
% diagrams which, it is intended, will be in the next version.

% Some of these commands can of course be implemented essentially by
% copying FB's macros. You can do this if you want to, but I shall not
% do it myself, distribute your code or guarantee that it will work
% in future.

% If you want to add commands which do have translations, please send
% them to me, accompanied by a test file which exercises them. Please
% test it with both FB's macros and the emulation. Your contributions
% will then be included in this file, with acknowledgement.

% The commands below are terminated with "\relax". This is to ensure
% that anything that follows is printed afterwards instead of being
% interpreted as a label or optional argument. DO NOT MAKE A HABIT OF
% PUTTING \relax AFTER ARROW COMMANDS. If anything follows a horizontal
% arrow within a cell, the "through" feature is disabled, so the filler
% is printed in two parts instead of one. When the filler is made from
% repeated components, such as those with double shafts, this may result
% in gaps if the arrow is too short.

% In this version all size parameters are ignored. We ought to save the
% size specified in \DIAGV, and convert that in sized diagonals to cells.

% If you think this emulation was worth the effort, please tell me!
% (Otherwise I shaln't bother to maintain it.)

%***************************************************************************

%% crossed LaTeX arrowheads
\def\lhxla{\lhla\mkern-3mu\scriptaxis+}%%
\def\rhxla{\scriptaxis+\mkern-2mu\rhla}%%
\def\uhxla{\hbox{\uhla\raise-1.5ex\hbox to0pt{\hss$\scriptstyle+$\hss}}}%%
\def\dhxla{\hbox{\dhla\lower-1ex\hbox to0pt{\hss$\scriptstyle+$\hss}}}%%
\newarrowhead{+la}\rhxla\lhxla\dhxla\uhxla

\newarrowtail+++++

\newarrow{Into}+--->
\newarrow{Bi}+---{+la}
\newarrow{Onto}----{+la}

%\newarrow{To}---->
%\newarrow{Dotsto}....>
%\newarrow{Eq}=====
%\newarrow{Mono}
%\newarrow{ar}---->
%\newarrow{dotar}....>
%\newarrow{mono}+--->
%\newarrow{epi}----{+>}
%\newarrow{bimo}+---{+la}
%\newarrow{iso}--{iso}->

% It would be better to define \newarrow's with names like FBar, FBmono, etc

% nohcheck allows arrows in text (ie not maths) mode, amongst other things.
% The assumption is that you start off with a correct FB diagram; in this
% case you don't want extra &s being inserted!
% 2620000sp is approx 40pt (4em at 10pt size)
\diagramstyle[heads=LaTeX,nohcheck,size=2620000sp]

% This was for debugging, to list the commands as they're defined.
%\let\ddef\def
%\ddef\zdef#1{\message{\string#1^^J}\ddef#1}
%\let\def\zdef

% The begin/end diagram commands.
\def\DIAG#1{\begin{diagram}[]\relax#1\relax}
\def\DIAGV#1#2{\dimen0=#1\DiagramCellHeight\CellSize=.01\dimen0
  \begin{diagram}[]\relax#2\relax}
\def\diag{\relax\end{diagram}}

% \diagv{t}{l}{b} prints the last item of the diagram and
% adds a t points extra space at the top of the diagram
% adds a l points extra space at the left of the diagram
% adds a b points extra space at the bottom of the diagram
\def\diagv#1#2#3{\relax\end{diagram}}% currently ignored.

% Overprint, next cell & next line commands
\def\n#1{&#1}
\def\nn#1{\\#1}
\def\cross#1#2{\relax#1\relax#2\relax}

% Make the next arrow bold.
\def\B{\csname diagramstyle\endcsname[thick]}

% Not implemented.
\def\movename#1#2#3{#1}
\def\com{}

% commutative diagram symbol
%\newcommand{\com}{\begin{picture}(12,8)%
%\put(6,4){\oval(8,8)[b]}\put(6,4){\oval(8,8)[r]}%
%\put(6,8){\vector(-1,0){2}}\end{picture}}%

\def\adj{\mbox{$\dashv$}}

% Natural transformations
\def\nat{\pile{\rTo\\\Downarrow\\\rTo}}

\def\Nat#1#2#3{\pile{\rTo^{#1\qquad}\\
          \Downarrow{\scriptstyle#2}\\
                     \rTo^{#3\quad}}}

\def\binat{\pile{\rTo\\\Downarrow\\\rTo\\\Downarrow\\\rTo}}

\def\Binat#1#2#3#4#5{\pile{\rTo^{#1\qquad}\\
          \Downarrow{\scriptstyle#2}\\
                      \rTo^{#3\quad}\\
          \Downarrow{\scriptstyle#2}\\
                     \rTo^{#3\quad}}}

%***************************************************************************
%		PRIMARY ARROW COMMANDS - FULLY TESTED
%***************************************************************************

% right-ward in-text arrows
\def\ar   {\rTo\relax}
\def\dotar{\rDotsto\relax}
\def\mono {\rInto\relax}
\def\epi  {\rOnto\relax}
\def\bimo {\rBi\relax}
\def\iso  {\rTo^{\cong}\relax}
\def\biar {\pile{\rTo\\\rTo}\relax}
\def\eql  {\rEq\relax}
\def\adjar{\pile{\lTo\\\rTo}\relax}

% labelled right-ward in-text arrows
\def\Ar   #1{\rTo^{#1}\relax}
\def\Dotar#1{\rDotsto^{#1}\relax}
\def\Mono #1{\rInto^{#1}\relax}
\def\Epi  #1{\rOnto^{#1}\relax}
\def\Bimo #1{\rBi^{#1}\relax}
\def\Iso  #1{\rTo^{{\cong}{#1}}\relax}
\def\Biar #1#2{\pile{\rTo^{#1}\\\rTo_{#2}}\relax}
%\def\Eql #1{\rEq^{#1}\relax}
\def\Adjar#1#2{\pile{\lTo^{#1}\\\rTo_{#2}}\relax}

% left-ward in-text arrows
\def\bkar   {\lTo\relax}
\def\bkdotar{\lDotsto\relax}
\def\bkmono {\lInto\relax}
\def\bkepi  {\lOnto\relax}
\def\bkbimo {\lBi\relax}
\def\bkiso  {\lTo^{\cong}\relax}
\def\bkbiar {\pile{\lTo\\\lTo}\relax}
\def\bkeql  {\lEq\relax}
\def\bkadjar{\pile{\rTo\\\lTo}\relax}

% labelled left-ward in-text arrows
\def\Bkar   #1{\lTo^{#1}\relax}
\def\Bkdotar#1{\lDotsto^{#1}\relax}
\def\Bkmono #1{\lInto^{#1}\relax}
\def\Bkepi  #1{\lOnto^{#1}\relax}
\def\Bkbimo #1{\lBi^{#1}\relax}
\def\Bkiso  #1{\lTo^{{\cong}{#1}}\relax}
\def\Bkbiar #1#2{\pile{\lTo^{#1}\\\lTo_{#2}}\relax}
%\def\Bkeql #1{\lEq^{#1}\relax}
\def\Bkadjar#1#2{\pile{\rTo^{#1}\\\lTo_{#2}}\relax}

% east-ward diagram arrows
\def\ear   {\rTo\relax}
\def\edotar{\rDotsto\relax}
\def\emono {\rInto\relax}
\def\eepi  {\rOnto\relax}
\def\ebimo {\rBi\relax}
\def\eiso  {\rTo^{\cong}\relax}
\def\ebiar {\pile{\rTo\\\rTo}\relax}
\def\eeql  {\rEq\relax}
\def\eadjar{\pile{\lTo\\\rTo}\relax}

% labelled east-ward diagram arrows
\def\Ear   #1{\rTo^{#1}\relax}
\def\Edotar#1{\rDotsto^{#1}\relax}
\def\Emono #1{\rInto^{#1}\relax}
\def\Eepi  #1{\rOnto^{#1}\relax}
\def\Ebimo #1{\rBi^{#1}\relax}
\def\Eiso  #1{\rTo^{{\cong}{#1}}\relax}
\def\Ebiar #1#2{\pile{\rTo^{#1}\\\rTo_{#2}}\relax}
%\def\Eeql #1{\rEq^{#1}\relax}
\def\Eadjar#1#2{\pile{\lTo^{#1}\\\rTo_{#2}}\relax}

% labelled east-ward diagram arrows
\def\eaR   #1{\rTo_{#1}\relax}
\def\edotaR#1{\rDotsto_{#1}\relax}
\def\emonO #1{\rInto_{#1}\relax}
\def\eepI  #1{\rOnto_{#1}\relax}
\def\ebimO #1{\rBi_{#1}\relax}
\def\eisO  #1{\rTo_{{\cong}{#1}}\relax}
%\def\ebiaR #1#2{\pile{\rTo_{#1}\\\rTo_{#2}}\relax}
%\def\eeqL  #1{\rEq_{#1}\relax}
%\def\eadjaR#1#2{\pile{\lTo_{#1}\\\rTo_{#2}}\relax}


% west-ward diagram arrows
\def\war   {\lTo\relax}
\def\wdotar{\lDotsto\relax}
\def\wmono {\lInto\relax}
\def\wepi  {\lOnto\relax}
\def\wbimo {\lBi\relax}
\def\wiso  {\lTo^{\cong}\relax}
\def\wbiar {\pile{\lTo\\\lTo}\relax}
\def\weql  {\lEq\relax}
\def\wadjar{\pile{\rTo\\\lTo}\relax}

% labelled west-ward diagram arrows
\def\War   #1{\lTo^{#1}\relax}
\def\Wdotar#1{\lDotsto^{#1}\relax}
\def\Wmono #1{\lInto^{#1}\relax}
\def\Wepi  #1{\lOnto^{#1}\relax}
\def\Wbimo #1{\lBi^{#1}\relax}
%\def\Wiso  #1{\lTo^{{\cong}{#1}}\relax}%%%%%%% FB's has no \cong!!!!!!!!
\def\Wiso  #1{\lTo^{{#1}}\relax}
\def\Wbiar #1#2{\pile{\lTo^{#1}\\\lTo_{#2}}\relax}
%\def\Weql  #1{\lEq^{#1}\relax}
\def\Wadjar#1#2{\pile{\rTo^{#1}\\\lTo_{#2}}\relax}

% labelled west-ward diagram arrows
\def\waR   #1{\lTo_{#1}\relax}
\def\wdotaR#1{\lDotsto_{#1}\relax}
\def\wmonO #1{\lInto_{#1}\relax}
\def\wepI  #1{\lOnto_{#1}\relax}
\def\wbimO #1{\lBi_{#1}\relax}
%\def\wisO  #1{\lTo_{{\cong}{#1}}\relax}%%%%%%%%%%%%% FB's has no \cong!!!!!!!
\def\wisO  #1{\lTo_{{#1}}\relax}
%\def\wbiaR #1#2{\pile{\lTo_{#1}\\\lTo_{#2}}\relax}
%\def\weqL  #1{\lEq_{#1}\relax}
%\def\wadjaR#1#2{\pile{\rTo_{#1}\\\lTo_{#2}}\relax}


% north-ward diagram arrows
\def\nar   {\uTo\relax}
\def\ndotar{\uDotsto\relax}
\def\nmono {\uInto\relax}
\def\nepi  {\uOnto\relax}
\def\nbimo {\uBi\relax}
\def\niso  {\uTo>{\cong}\relax}
\def\nbiar {\uTo\uTo\relax}
\def\neql  {\uEq\relax}
\def\nadjar{\uTo\dTo\relax}

% labelled north-ward diagram arrows
\def\Nar   #1{\uTo^{#1}\relax}
\def\Ndotar#1{\uDotsto^{#1}\relax}
\def\Nmono #1{\uInto^{#1}\relax}
\def\Nepi  #1{\uOnto^{#1}\relax}
\def\Nbimo #1{\uBi^{#1}\relax}
\def\Niso  #1{\uTo<{#1}>{\cong}\relax}
\def\Nbiar #1#2{uTo^{#1}\uTo_{#2}\relax}
%\def\Neql #1{\uEq^{#1}\relax}
\def\Nadjar#1#2{\uTo^{#1}\dTo_{#2}\relax}

% labelled north-ward diagram arrows
\def\naR   #1{\uTo_{#1}\relax}
\def\ndotaR#1{\uDotsto_{#1}\relax}
\def\nmonO #1{\uInto_{#1}\relax}
\def\nepI  #1{\uOnto_{#1}\relax}
\def\nbimO #1{\uBi_{#1}\relax}
%\def\nisO  #1{\uTo_{{\cong}{#1}}\relax}
%\def\nbiaR #1#2{uTo_{#1}\\\uTo_{#2}\relax}
%\def\neqL #1{\uEq_{#1}\relax}
%\def\nadjaR#1#2{\uTo_{#1}\dTo_{#2}\relax}


% south-ward diagram arrows
\def\sar   {\dTo\relax}
\def\sdotar{\dDotsto\relax}
\def\smono {\dInto\relax}
\def\sepi  {\dOnto\relax}
\def\sbimo {\dBi\relax}
\def\siso  {\dTo>{\cong}\relax}
\def\sbiar {\dTo\dTo\relax}
\def\seql  {\dEq\relax}
\def\sadjar{\dTo\uTo\relax}

% labelled south-ward diagram arrows
\def\Sar   #1{\dTo^{#1}\relax}
\def\Sdotar#1{\dDotsto^{#1}\relax}
\def\Smono #1{\dInto^{#1}\relax}
\def\Sepi  #1{\dOnto^{#1}\relax}
\def\Sbimo #1{\dBi^{#1}\relax}
\def\Siso  #1{\dTo<{#1}>{\cong}\relax}
\def\Sbiar #1#2{\dTo^{#1}\dTo_{#2}\relax}
%\def\Seql  #1{\dEq^{#1}\relax}
\def\Sadjar#1#2{\dTo^{#1}\uTo_{#2}\relax}

% labelled south-ward diagram arrows
\def\saR   #1{\dTo_{#1}\relax}
\def\sdotaR#1{\dDotsto_{#1}\relax}
\def\smonO #1{\dInto_{#1}\relax}
\def\sepI  #1{\dOnto_{#1}\relax}
\def\sbimO #1{\dBi_{#1}\relax}
%\def\sisO  #1{\dTo_{{\cong}{#1}}\relax}
%\def\sbiaR #1#2{\dTo_{#1}\dTo_{#2}\relax}
%\def\seqL  #1{\dEq_{#1}\relax}
%\def\sadjaR#1#2{\dTo_{#1}\uTo_{#2}\relax}

% east-ward variable-length diagram arrows
\def\earv   #1{\rTo\relax}
\def\edotarv#1{\rDotsto\relax}
\def\emonov #1{\rInto\relax}
\def\eepiv  #1{\rOnto\relax}
\def\ebimov #1{\rBi\relax}
\def\eisov  #1{\rTo^{\cong}\relax}
\def\ebiarv #1{\pile{\rTo\\\rTo}\relax}
\def\eeqlv  #1{\rEq\relax}
\def\eadjarv#1{\pile{\lTo\\\rTo}\relax}

% labelled east-ward variable-length diagram arrows
\def\Earv   #1#2{\rTo^{#1}\relax}
\def\Edotarv#1#2{\rDotsto^{#1}\relax}
\def\Emonov #1#2{\rInto^{#1}\relax}
\def\Eepiv  #1#2{\rOnto^{#1}\relax}
\def\Ebimov #1#2{\rBi^{#1}\relax}
\def\Eisov  #1#2{\rTo^{{\cong}{#1}}\relax}
\def\Ebiarv #1#2#3{\pile{\rTo^{#1}\\\rTo_{#2}}\relax}
%\def\Eeqlv #1#2{\rEq^{#1}\relax}
\def\Eadjarv#1#2#3{\pile{\lTo^{#1}\\\rTo_{#2}}\relax}

% labelled east-ward variable-length diagram arrows
\def\eaRv   #1#2{\rTo_{#1}\relax}
\def\edotaRv#1#2{\rDotsto_{#1}\relax}
\def\emonOv #1#2{\rInto_{#1}\relax}
\def\eepIv  #1#2{\rOnto_{#1}\relax}
\def\ebimOv #1#2{\rBi_{#1}\relax}
\def\eisOv  #1#2{\rTo_{{\cong}{#1}}\relax}
%\def\ebiaRv #1#2#3{\pile{\rTo_{#1}\\\rTo_{#2}}\relax}
%\def\eeqLv #1#2{\rEq_{#1}\relax}
%\def\eadjaRv#1#2#3{\pile{\lTo_{#1}\\\rTo_{#2}}\relax}


% west-ward variable-length diagram arrows
\def\warv   #1{\lTo\relax}
\def\wdotarv#1{\lDotsto\relax}
\def\wmonov #1{\lInto\relax}
\def\wepiv  #1{\lOnto\relax}
\def\wbimov #1{\lBi\relax}
\def\wisov  #1{\lTo^{\cong}\relax}
\def\wbiarv #1{\pile{\lTo\\\lTo}\relax}
\def\weqlv  #1{\lEq\relax}
\def\wadjarv#1{\pile{\rTo\\\lTo}\relax}

% labelled west-ward variable-length diagram arrows
\def\Warv   #1#2{\lTo^{#1}\relax}
\def\Wdotarv#1#2{\lDotsto^{#1}\relax}
\def\Wmonov #1#2{\lInto^{#1}\relax}
\def\Wepiv  #1#2{\lOnto^{#1}\relax}
\def\Wbimov #1#2{\lBi^{#1}\relax}
\def\Wisov  #1#2{\lTo^{{\cong}{#1}}\relax}
\def\Wbiarv #1#2#3{\pile{\lTo^{#1}\\\lTo_{#2}}\relax}
%\def\Weqlv  #1#2{\lEq^{#1}\relax}
\def\Wadjarv#1#2#3{\pile{\rTo^{#1}\\\lTo_{#2}}\relax}

% labelled west-ward variable-length diagram arrows
\def\waRv   #1#2{\lTo_{#1}\relax}
\def\wdotaRv#1#2{\lDotsto_{#1}\relax}
\def\wmonOv #1#2{\lInto_{#1}\relax}
\def\wepIv  #1#2{\lOnto_{#1}\relax}
\def\wbimOv #1#2{\lBi_{#1}\relax}
\def\wisOv  #1#2{\lTo_{{\cong}{#1}}\relax}
%\def\wbiaRv #1#2#3{\pile{\lTo_{#1}\\\lTo_{#2}}\relax}
%\def\weqLv  #1#2{\lEq_{#1}\relax}
%\def\wadjaRv#1#2#3{\pile{\rTo_{#1}\\\lTo_{#2}}\relax}


% north-ward variable-length diagram arrows
\def\narv   #1{\uTo\relax}
\def\ndotarv#1{\uDotsto\relax}
\def\nmonov #1{\uInto\relax}
\def\nepiv  #1{\uOnto\relax}
\def\nbimov #1{\uBi\relax}
\def\nisov  #1{\uTo>{\cong}\relax}
\def\nbiarv #1{\uTo\uTo\relax}
\def\neqlv  #1{\uEq\relax}
\def\nadjarv#1{\uTo\dTo\relax}

% labelled north-ward variable-length diagram arrows
\def\Narv   #1#2{\uTo^{#1}\relax}
\def\Ndotarv#1#2{\uDotsto^{#1}\relax}
\def\Nmonov #1#2{\uInto^{#1}\relax}
\def\Nepiv  #1#2{\uOnto^{#1}\relax}
\def\Nbimov #1#2{\uBi^{#1}\relax}
\def\Nisov  #1#2{\uTo<{#1}>{\cong}\relax}
\def\Nbiarv #1#2#3{\uTo^{#1}\uTo_{#2}\relax}
%\def\Neqlv  #1#2{\uEq^{#1}\relax}
\def\Nadjarv#1#2#3{\uTo^{#1}\dTo_{#2}\relax}

% labelled north-ward variable-length diagram arrows
\def\naRv   #1#2{\uTo_{#1}\relax}
\def\ndotaRv#1#2{\uDotsto_{#1}\relax}
\def\nmonOv #1#2{\uInto_{#1}\relax}
\def\nepIv  #1#2{\uOnto_{#1}\relax}
\def\nbimOv #1#2{\uBi_{#1}\relax}
%\def\nisOv  #1#2{\uTo_{{\cong}{#1}}\relax}
%\def\nbiaRv #1#2#3{\uTo_{#1}\uTo_{#2}\relax}
%\def\neqLv  #1#2{\uEq_{#1}\relax}
%\def\nadjaRv#1#2#3{\uTo_{#1}\dTo_{#2}\relax}


% south-ward variable-length diagram arrows
\def\sarv   #1{\dTo\relax}
\def\sdotarv#1{\dDotsto\relax}
\def\smonov #1{\dInto\relax}
\def\sepiv  #1{\dOnto\relax}
\def\sbimov #1{\dBi\relax}
\def\sisov  #1{\dTo>{\cong}\relax}
\def\sbiarv #1{\dTo\dTo\relax}
\def\seqlv  #1{\dEq\relax}
\def\sadjarv#1{\dTo\uTo\relax}

% labelled south-ward variable-length diagram arrows
\def\Sarv   #1#2{\dTo^{#1}\relax}
\def\Sdotarv#1#2{\dDotsto^{#1}\relax}
\def\Smonov #1#2{\dInto^{#1}\relax}
\def\Sepiv  #1#2{\dOnto^{#1}\relax}
\def\Sbimov #1#2{\dBi^{#1}\relax}
\def\Sisov  #1#2{\dTo<{#1}>{\cong}\relax}
\def\Sbiarv #1#2#3{\dTo^{#1}\dTo_{#2}\relax}
%\def\Seqlv  #1#2{\dEq^{#1}\relax}
\def\Sadjarv#1#2#3{\dTo^{#1}\uTo_{#2}\relax}

% labelled south-ward variable-length diagram arrows
\def\saRv   #1#2{\dTo_{#1}\relax}
\def\sdotaRv#1#2{\dDotsto_{#1}\relax}
\def\smonOv #1#2{\dInto_{#1}\relax}
\def\sepIv  #1#2{\dOnto_{#1}\relax}
\def\sbimOv #1#2{\dBi_{#1}\relax}
%\def\sisOv  #1#2{\dTo_{{\cong}{#1}}\relax}
%\def\sbiaRv #1#2#3{\dTo_{#1}\dTo_{#2}\relax}
%\def\seqLv  #1#2{\dEq_{#1}\relax}
%\def\sadjaRv#1#2#3{\dTo_{#1}\uTo_{#2}\relax}

%***************************************************************************
%		THE SECONDARY ARROWS NEED THOROUGH TESTING!
%***************************************************************************

% north-east-ward diagram arrows
\def\near   {\ruTo\relax}
\def\nedotar{\ruDotsto\relax}
\def\nemono {\ruInto\relax}
\def\neepi  {\ruOnto\relax}
\def\nebimo {\ruBi\relax}
\def\neiso  {\ruTo^{\cong}\relax}
\def\nebiar {\ruTo\ruTo\relax}
\def\neeql  {\ruEq\relax}
\def\neadjar{\ldTo\ruTo\relax}

% labelled north-east-ward diagram arrows
\def\Near   #1{\ruTo^{#1}\relax}
\def\Nedotar#1{\ruDotsto^{#1}\relax}
\def\Nemono #1{\ruInto^{#1}\relax}
\def\Neepi  #1{\ruOnto^{#1}\relax}
\def\Nebimo #1{\ruBi^{#1}\relax}
\def\Neiso  #1{\ruTo^{{\cong}{#1}}\relax}
\def\Nebiar #1#2{\ruTo^{#1}\ruTo_{#2}\relax}
%\def\Neeql #1{\ruEq^{#1}\relax}
\def\Neadjar#1#2{\ldTo^{#1}\ruTo_{#2}\relax}

% labelled north-east-ward diagram arrows
\def\neaR   #1{\ruTo_{#1}\relax}
\def\nedotaR#1{\ruDotsto_{#1}\relax}
\def\nemonO #1{\ruInto_{#1}\relax}
\def\neepI  #1{\ruOnto_{#1}\relax}
\def\nebimO #1{\ruBi_{#1}\relax}
%\def\neisO  #1{\ruTo_{{\cong}{#1}}\relax}
%\def\nebiaR #1#2{\ruTo_{#1}\ruTo_{#2}\relax}
%\def\neeqL  #1{\ruEq_{#1}\relax}
%\def\neadjaR#1#2{\ldTo_{#1}\ruTo_{#2}\relax}


% north-west-ward diagram arrows
\def\nwar   {\luTo\relax}
\def\nwdotar{\luDotsto\relax}
\def\nwmono {\luInto\relax}
\def\nwepi  {\luOnto\relax}
\def\nwbimo {\luBi\relax}
\def\nwiso  {\luTo^{\cong}\relax}
\def\nwbiar {\luTo\luTo\relax}
\def\nweql  {\luEq\relax}
\def\nwadjar{\luTo\rdTo\relax}

% labelled north-west-ward diagram arrows
\def\Nwar   #1{\luTo^{#1}\relax}
\def\Nwdotar#1{\luDotsto^{#1}\relax}
\def\Nwmono #1{\luInto^{#1}\relax}
\def\Nwepi  #1{\luOnto^{#1}\relax}
\def\Nwbimo #1{\luBi^{#1}\relax}
\def\Nwiso  #1{\luTo^{{\cong}{#1}}\relax}
\def\Nwbiar #1#2{\luTo^{#1}\luTo_{#2}\relax}
%\def\Nweql  #1{\luEq^{#1}\relax}
\def\Nwadjar#1#2{\luTo^{#1}\rdTo_{#2}\relax}

% labelled north-west-ward diagram arrows
\def\nwaR   #1{\luTo_{#1}\relax}
\def\nwdotaR#1{\luDotsto_{#1}\relax}
\def\nwmonO #1{\luInto_{#1}\relax}
\def\nwepI  #1{\luOnto_{#1}\relax}
\def\nwbimO #1{\luBi_{#1}\relax}
%\def\nwisO  #1{\luTo_{{\cong}{#1}}\relax}
%\def\nwbiaR #1#2{\luTo_{#1}\luTo_{#2}\relax}
%\def\nweqL  #1{\luEq_{#1}\relax}
%\def\nwadjaR#1#2{\luTo_{#1}\rdTo_{#2}\relax}


% south-east-ward diagram arrows
\def\sear   {\rdTo\relax}
\def\sedotar{\rdDotsto\relax}
\def\semono {\rdInto\relax}
\def\seepi  {\rdOnto\relax}
\def\sebimo {\rdBi\relax}
\def\seiso  {\rdTo^{\cong}\relax}
\def\sebiar {\rdTo\rdTo\relax}
\def\seeql  {\rdEq\relax}
\def\seadjar{\rdTo\luTo\relax}

% labelled south-east-ward diagram arrows
\def\Sear   #1{\rdTo^{#1}\relax}
\def\Sedotar#1{\rdDotsto^{#1}\relax}
\def\Semono #1{\rdInto^{#1}\relax}
\def\Seepi  #1{\rdOnto^{#1}\relax}
\def\Sebimo #1{\rdBi^{#1}\relax}
\def\Seiso  #1{\rdTo^{{\cong}{#1}}\relax}
\def\Sebiar #1#2{\rdTo^{#1}\rdTo_{#2}\relax}
%\def\Seeql  #1{\rdEq^{#1}\relax}
\def\Seadjar#1#2{\rdTo^{#1}\luTo_{#2}\relax}

% labelled south-east-ward diagram arrows
\def\seaR   #1{\rdTo_{#1}\relax}
\def\sedotaR#1{\rdDotsto_{#1}\relax}
\def\semonO #1{\rdInto_{#1}\relax}
\def\seepI  #1{\rdOnto_{#1}\relax}
\def\sebimO #1{\rdBi_{#1}\relax}
%\def\seisO  #1{\rdTo_{{\cong}{#1}}\relax}
%\def\sebiaR #1#2{\rdTo_{#1}\rdTo_{#2}\relax}
%\def\seeqL  #1{\rdEq_{#1}\relax}
%\def\seadjaR#1#2{\rdTo_{#1}\luTo_{#2}\relax}


% south-west-ward diagram arrows
\def\swar   {\ldTo\relax}
\def\swdotar{\ldDotsto\relax}
\def\swmono {\ldInto\relax}
\def\swepi  {\ldOnto\relax}
\def\swbimo {\ldBi\relax}
\def\swiso  {\ldTo^{\cong}\relax}
\def\swbiar {\ldTo\ldTo\relax}
\def\sweql  {\ldEq\relax}
\def\swadjar{\ruTo\ldTo\relax}% ?

% labelled south-west-ward diagram arrows
\def\Swar   #1{\ldTo^{#1}\relax}
\def\Swdotar#1{\ldDotsto^{#1}\relax}
\def\Swmono #1{\ldInto^{#1}\relax}
\def\Swepi  #1{\ldOnto^{#1}\relax}
\def\Swbimo #1{\ldBi^{#1}\relax}
\def\Swiso  #1{\ldTo^{{\cong}{#1}}\relax}
\def\Swbiar #1#2{\ldTo^{#1}\ldTo_{#2}\relax}
%\def\Sweql  #1{\ldEq^{#1}\relax}
\def\Swadjar#1#2{\ruTo^{#1}\ldTo_{#2}\relax}% ?

% labelled south-west-ward diagram arrows
\def\swaR   #1{\ldTo_{#1}\relax}
\def\swdotaR#1{\ldDotsto_{#1}\relax}
\def\swmonO #1{\ldInto_{#1}\relax}
\def\swepI  #1{\ldOnto_{#1}\relax}
\def\swbimO #1{\ldBi_{#1}\relax}
%\def\swisO  #1{\ldTo_{{\cong}{#1}}\relax}
%\def\swbiaR #1#2{\ldTo_{#1}\ldTo_{#2}\relax}
%\def\sweqL  #1{\ldEq_{#1}\relax}
%\def\swadjaR#1#2{\ruTo_{#1}\ldTo_{#2}\relax}% ?

% secondary variable-length diagram arrows
\def\nwarv#1{\luTo\relax}%
\def\nearv#1{\ruTo\relax}%
\def\swarv#1{\ldTo\relax}%
\def\searv#1{\rdTo\relax}%

% labelled secondary variable-length diagram arrows
\def\nwaRv#1#2{\luTo^{#1}\relax}%
\def\neaRv#1#2{\ruTo^{#1}\relax}%
\def\swaRv#1#2{\ldTo^{#1}\relax}%
\def\seaRv#1#2{\rdTo^{#1}\relax}%
\def\Nwarv#1#2{\luTo^{#1}\relax}%
\def\Nearv#1#2{\ruTo^{#1}\relax}%
\def\Swarv#1#2{\ldTo^{#1}\relax}%
\def\Searv#1#2{\rdTo^{#1}\relax}%

% curved arrows second argument is length
\def\Necurve#1#2{\uTo^{#1}\relax}
\def\Nwcurve#1#2{\uTo^{#1}\relax}
\def\Securve#1#2{\dTo^{#1}\relax}
\def\Swcurve#1#2{\dTo^{#1}\relax}
\def\Encurve#1#2{\rTo^{#1}\relax}
\def\Escurve#1#2{\rTo^{#1}\relax}
\def\Wncurve#1#2{\lTo^{#1}\relax}
\def\Wscurve#1#2{\lTo^{#1}\relax}

%***************************************************************************
%		THE TERNARY ARROWS ARE NOT CORRECTLY PLACED!
%***************************************************************************

% ternary arrows --- MISPLACED!
\def\nnwar{\luTo[diagonalbase=(1,2)](2,4)\relax}
\def\nnear{\ruTo[diagonalbase=(1,2)](2,4)\relax}
\def\wnwar{\luTo[diagonalbase=(2,1)](4,2)\relax}
\def\enear{\ruTo[diagonalbase=(2,1)](4,2)\relax}
\def\sswar{\ldTo[diagonalbase=(1,2)](2,4)\relax}
\def\ssear{\rdTo[diagonalbase=(1,2)](2,4)\relax}
\def\wswar{\ldTo[diagonalbase=(2,1)](4,2)\relax}
\def\esear{\rdTo[diagonalbase=(2,1)](4,2)\relax}

% labelled ternary arrows --- MISPLACED!
\def\Nnwar#1{\luTo[diagonalbase=(1,2)](2,4)^{#1}\relax}
\def\Nnear#1{\ruTo[diagonalbase=(1,2)](2,4)^{#1}\relax}
\def\Wnwar#1{\luTo[diagonalbase=(2,1)](4,2)^{#1}\relax}
\def\Enear#1{\ruTo[diagonalbase=(2,1)](4,2)^{#1}\relax}
\def\Sswar#1{\ldTo[diagonalbase=(1,2)](2,4)^{#1}\relax}
\def\Ssear#1{\rdTo[diagonalbase=(1,2)](2,4)^{#1}\relax}
\def\Wswar#1{\ldTo[diagonalbase=(2,1)](4,2)^{#1}\relax}
\def\Esear#1{\rdTo[diagonalbase=(2,1)](4,2)^{#1}\relax}

% labelled ternary arrows --- MISPLACED!
\def\nnwaR#1{\luTo[diagonalbase=(1,2)](2,4)_{#1}\relax}
\def\nneaR#1{\ruTo[diagonalbase=(1,2)](2,4)_{#1}\relax}
\def\wnwaR#1{\luTo[diagonalbase=(2,1)](4,2)_{#1}\relax}
\def\eneaR#1{\ruTo[diagonalbase=(2,1)](4,2)_{#1}\relax}
\def\sswaR#1{\ldTo[diagonalbase=(1,2)](2,4)_{#1}\relax}
\def\sseaR#1{\rdTo[diagonalbase=(1,2)](2,4)_{#1}\relax}
\def\wswaR#1{\ldTo[diagonalbase=(2,1)](4,2)_{#1}\relax}
\def\eseaR#1{\rdTo[diagonalbase=(2,1)](4,2)_{#1}\relax}

%***************************************************************************
%		THE CURVED ARROWS ARE NOT SUPPORTED!
%***************************************************************************

% curved arrows
\def\necurve#1{\uTo^{#1}\relax}
\def\nwcurve#1{\uTo^{#1}\relax}
\def\securve#1{\dTo^{#1}\relax}
\def\swcurve#1{\dTo^{#1}\relax}
\def\encurve#1{\rTo^{#1}\relax}
\def\escurve#1{\rTo^{#1}\relax}
\def\wncurve#1{\lTo^{#1}\relax}
\def\wscurve#1{\lTo^{#1}\relax}

% The remainder of this file is included so that the original
% and emulated versions appear to have the same commands in them.
%
% missing commands
%\def\ADJAR#1{}%	draws a pair of adjoint arrows of length n units
%\def\AR#1{}%	draws an arrow of length n units
%\def\BIAR#1{}%	draws a pair of arrows of length n units
%\def\BIMO#1{}%	draws a bimorphism of length n units
%\def\BKADJAR#1{}%	draws a pair of adjoint arrows of length n units
%\def\BKAR#1{}%	draws a pointing back arrow of length n units
%\def\BKBIAR#1{}%	draws a pair of pointing back arrows of length n units
%\def\BKBIMO#1{}%	draws a pointing back bimorphism of length n units
%\def\BKDOTAR#1{}%	draws a backward dotted  arrow
%\def\BKEPI#1{}%	draws a pointing back epimorphism of length n units
%\def\BKMONO#1{}%	draws a pointing back monomorphism of length n units
%\def\DOTAR#1{}%	draws a dotted  arrow of length n units
%\def\EADJAR#1{}%	draws an east pair of adjoint arrows of length n
%\def\EAR#1{}%	draws an east arrow of length n units
%\def\EBIAR#1{}%	draws an east pair of arrows of length n units
%\def\EBIMO#1{}%	draws an east bimorphism of length n units
%\def\EDOTAR{}% draws a dotted arrow of length n units
%\def\EEPI#1{}%	draws an east epimorphism of length n units
%\def\EEQL#1{}%	draws an east equality of length n units
%\def\EMONO#1{}%	draws an east monomorphism of length n units
%\def\ENEAR{f}{g}{}% draws a east-north-east arrow with names f, g
%\def\EPI#1{}%	draws an epimorphism of length n units
%\def\EQL#1{}%	draws an equality of length n units
%\def\ESEAR{f}{g}% draws an east-south-east arrow with names f, g
%\def\MONO{}%
%\def\NADJAR#1{}%	draws a pair of vertical adjoint arrows of length n pt
%\def\NAR#1{}%	draws a north arrow of length n pt
%\def\NBIAR#1{}%	draws a pair of north arrows of length n pt
%\def\NBIMO#1{}%	draws a north bimorphism of length n pt
%\def\NDOTAR#1{}%	draws a north dotted arrow of length n units
%\def\NEADJAR{}% draws a north-east pair of adjoint arrows
%\def\NEAR{}% draws a north-east arrow
%\def\NEARV#1{}%	draws a north-east arrow of length nx100 units
%\def\NEBIAR{}% draws a pair of north-east arrows
%\def\NEBIMO{}% draws a north-east bimorphism
%\def\NEDOTAR{}% draws a north-east dotted arrow
%\def\NEEPI{}% draws a north-east epimorphism
%\def\NEEQL{}% draws a north-east equality
%\def\NEMONO{}% draws a north-east monomorphism
%\def\NEPI#1{}%	draws a north epimorphism of length n pt
%\def\NMONO#1{}%	draws a north monomorphism of length n pt
%\def\NNEAR{f}{g}{}% draws a north-north-east arrow with names f, g
%\def\NNWAR{f}{g}{}% draws a north-north-west arrow with names f, g
%\def\NWADJAR{}% draws a north-west pair of adjoint arrows
%\def\NWAR{}% draws a north-west arrow
%\def\NWARV#1{}%	draws a north-west arrow of length nx100 units
%\def\NWBIAR{}% draws a pair of north-west arrows
%\def\NWBIMO{}% draws a north-west bimorphism
%\def\NWDOTAR{}% draws a north-west dotted arrow
%\def\NWEPI{}% draws a north-west epimorphism
%\def\NWMONO{}% draws a north-west monomorphism
%\def\SADJAR#1{}%	draws a pair of vertical adjoint arrows of length n units
%\def\SAR#1{}%	draws a south arrow of length n units
%\def\SBIAR#1{}%	draws a pair of south arrows of length n units
%\def\SBIMO#1{}%	draws a south bimorphism of length n units
%\def\SDOTAR#1{}%	draws a south dotted arrow of length n units
%\def\SEADJAR{}% draws a south-east pair of adjoint arrows
%\def\SEAR{}% draws a south-east arrow
%\def\SEARV#1{}%	draws a south-east arrow of length nx100 units
%\def\SEBIAR{}% draws a pair of south-east arrows
%\def\SEBIMO{}% draws a south-east bimorphism
%\def\SEDOTAR{}% draws a south-east dotted arrow
%\def\SEEPI{}% draws a south-east epimorphism
%\def\SEEQL{}% draws a south-east equality
%\def\SEMONO{}% draws a south-east monomorphism
%\def\SEPI#1{}%	draws a south epimorphism of length n units
%\def\SEQL#1{}%	draws a vertical equality of length n units
%\def\SMONO#1{}%	draws a south monomorphism of length n units
%\def\SSEAR{f}{g}{}% draws a south-south-east arrow with names f, g
%\def\SSWAR{f}{g}{}% draws a south-south-west arrow with names f, g
%\def\SWADJAR{}% draws a south-west pair of adjoint arrows
%\def\SWAR{}% draws a south-west arrow
%\def\SWARV#1{}%	draws a south-west arrow of length nx100 units
%\def\SWBIAR{}% draws a pair of south-west arrows
%\def\SWBIMO{}% draws a south-west bimorphism
%\def\SWDOTAR{}% draws a south-west dotted arrow
%\def\SWEPI{}% draws a south-west epimorphism
%\def\SWMONO{}% draws a south-west monomorphism
%\def\WADJAR#1{}%	draws a pair of adjoint arrows of length n units
%\def\WAR#1{}%	draws a pointing back arrow of length n units
%\def\WBIAR#1{}%	draws a pair of pointing back arrows of length n units
%\def\WBIMO#1{}%	draws a pointing back bimorphism of length n units
%\def\WDOTAR{}% draws a dotted arrow of length n units
%\def\WEPI#1{}%	draws a pointing back epimorphism of length n units
%\def\WMONO#1{}%	draws a pointing back monomorphism of length n units
%\def\WNWAR{f}{g}% draws a west-north-west arrow with names f, g
%\def\WSWAR{f}{g}% draws a west-south-west arrow with names f, g
%
%\newcount\ARROW{}%
%\newcount\ARROWLENGTH{}%
%\newcount\COLUMN{}%
%\newcount\LINE{}%
%\newcount\NUMBER{}%
%\newcount\NUMBEROFDOTS{}%
%\newcount\SCALE{}%
%\newcount\SOURCE{}%
%\newcount\TARGET
%\newcount\WIDTH
%\newskip\firstitem
%\newskip\itemlength
%\newskip\seconditem
%
%\def\Freear{}%
%\def\Hbicase{}%
%\def\Hcase{}%
%\def\N{}%
%\def\Tbicase{}%
%\def\Tcase{}%
%\def\Vbicase{}%
%\def\Vcase{}%
%\def\changecounters{}%
%\def\conclude{}%
%\def\crosslength{}%
%\def\fdbicase{}%
%\def\fdcase{}%
%\def\freear{}%
%\def\hbicase{}%
%\def\hcasE{}%
%\def\hcase{}%
%\def\initialize{}%
%\def\lowername{}%
%\def\movearrow{}%
%\def\movevertex{}%
%\def\sdbicase{}%
%\def\sdcase{}%
%\def\tbicase{}%
%\def\tcase{}%
%\def\tlowername{}%
%\def\truex{}%
%\def\truey{}%
%\def\truez{}%
%\def\vbicase{}%
%\def\vcasE{}%
%\def\vcase{}%
%
%
%\let\def\ddef\bye