\setlength{\parindent}{0pt}
\setlength{\parskip}{1em}

\DeclareMathOperator{\obinternal}{ob}
\DeclareMathOperator{\morinternal}{mor}
\DeclareMathOperator{\dominternal}{dom}
\DeclareMathOperator{\codinternal}{cod}

\renewcommand\ob{\glsref[category_symbol]{\obinternal}}
\newcommand\mor{\glsref[category_symbol]{\morinternal}}
\newcommand\dom{\glsref[category_symbol]{\dominternal}}
\newcommand\cod{\glsref[category_symbol]{\codinternal}}

\newcommand\Set{\glsref[catexamples_symbol]{\mathbf{Set}}}
\newcommand\Gp{\glsref[catexamples_symbol]{\mathbf{Gp}}}
\newcommand\Rng{\glsref[catexamples_symbol]{\mathbf{Rng}}}
\newcommand\Vect{\glsref[catexamples_symbol]{\mathbf{Vect}}}
\newcommand\Top{\glsref[catexamples_symbol]{\mathbf{Top}}}
\newcommand\Met{\glsref[catexamples_symbol]{\mathbf{Met}}}
\newcommand\Mfd{\glsref[catexamples_symbol]{\mathbf{Mfd}}}
\newcommand\Htpy{\glsref[catexamples_symbol]{\mathbf{Htpy}}}
\newcommand\Rel{\glsref[catexamples_symbol]{\mathbf{Rel}}}
\newcommand\Part{\glsref[catexamples_symbol]{\mathbf{Part}}}
\renewcommand\Mat{\glsref[catexamples_symbol]{\mathbf{Mat}}}

\newcommand\op{{\glsref[opcat_symbol]{{\mathrm{op}}}}}

\newcommand\Cat{\glsref[Cat_symbol]{\mathbf{Cat}}}
\newcommand\twofuncs[2]{
  \!\!\!\!
  \raisebox{0.2em}{
    \adjustbox{scale=0.6}{
      \begin{tikzcd}[ampersand replacement=\&]
        \phantom{}
        \ar[shift left=3pt, r, "#1"]
        \ar[shift right=3pt, r, swap, "#2"]
        \& \phantom{}
      \end{tikzcd}
    }
  }
  \!\!\!\!
}

\def\funccat[#1, #2]{\glsref[funccat_symbol]{[#1, #2]}}

\newcommand\identity[1]{1_{#1}}

\newcommand\equivc{\glsref[equiv_symbol]{\equiv}}

\newcommand\partf{\rightharpoondown}
\newcommand\congarrow{\stackrel[\cong]{}{\to}}

\newcommand\epic{\glsref[monoepi_symbol]{\twoheadrightarrow}}
\newcommand\monic{\glsref[monoepi_symbol]{\rightarrowtail}}
\def\morphs#1(#2,#3){\glsref[morphs_symbol]{#1(#2, #3)}}
\def\morphf#1(#2,#3){\glsref[morphf_symbol]{#1(#2, #3)}}

\newcommand\adjoint{\glsref[adjoint_symbol]{\dashv}}
\newcommand\darr{\glsref[darr_symbol]{\downarrow}}

\newcommand\funcslr[2]{
  \!\!\!\!
  \raisebox{0.2em}{
    \adjustbox{scale=0.6}{
      \begin{tikzcd}[ampersand replacement=\&]
        \phantom{}
        \ar[shift left=3pt, r, "#1"]
        \& \phantom{}
        \ar[shift left=3pt, l, "#2"]
      \end{tikzcd}
    }
  }
  \!\!\!\!
}
% \newcommand\funcslr[2]{\underset{\scriptscriptstyle #2}{\overset{\scriptscriptstyle #1}{\rightleftarrows}}}

\newcommand\AbGp{\mathbf{AbGp}}
\newcommand\KHaus{\mathbf{KHaus}}
\newcommand\Lat{\mathbf{Lat}}
\newcommand\CLat{\mathbf{CLat}}
\newcommand\CSLat{\mathbf{CSLat}}
\newcommand\DLat{\mathbf{DLat}}
\newcommand\tfAbGp{\mathbf{tfAbGp}}
\newcommand\Mod{\mathbf{Mod}}
\newcommand\Cone{\glsref[cone_symbol]{\mathbf{Cone}}}
\newcommand\Diag{\glsref[Deltadiag_symbol]{\Delta}}

\DeclareMathOperator{\Subinternal}{Sub}
\newcommand\Sub{\glsref[Sub_symbol]{\Subinternal}}
\newcommand\suble{\glsref[Sub_symbol]{\le}}

\newcommand\Tbb{\glsref[monad]{\mathbb{T}}}
\newcommand\EMaT{\glsref[EMaT_symbol]{^{\mathbb{T}}}}
\newcommand\emat{\glsref[EMaT_symbol]{^{\mathbb{T}}}}
\newcommand\kct{\glsref[KcT_symbol]{_{\mathbb{T}}}}

\newcommand\kto[1][]{{\color{red} \stackrel{#1}{\to}}}
\newcommand\kar[1][]{\ar[#1, red]}
\DeclareMathOperator{\Adjinternal}{Adj}
\newcommand\Adj{\glsref[Adj_symbol]{\Adjinternal}}

\newcommand\gsplit[1]{\glsref[gsplit]{$#1$-split}}
\newcommand\colim{\operatorname*{colim}}

\newcommand\Setf{\glsref[Setf_symbol]{\mathbf{Set}_f}}

\newcommand\covers{\glsref[cover_symbol]{\rightarrowtriangle}}
\newcommand\torel{\glsref[relation_symbol]{\looparrowright}}
\newcommand\Reln{\glsref[Relc_symbol]{\mathbf{Rel}}}
\newcommand\bull{{\glsref[bull_symbol]{\bullet}}}
\newcommand\ucirc{{\glsref[circ_symbol]{\circ}}}

\newcommand\ws{{\glsref[ws_symbol]{\text{ws}}}}
\newcommand\tv{{\glsref[tv_symbol]{\text{tv}}}}

\let\customstackrel\stackrel
