\everymath{\it\/}
\DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} %chktex 18
\newcommand{\dcolon}[0]{\mathbin{::}}
+\newcommand{\refreshrate}[2]{\langle{}#1, #2\rangle{}}
% Internationalisation
\usepackage[dutch,russian,british]{babel}
\def\part@nostar@nopt#1{\NR@gettitle{#1}\titlesec@part{#1}}
\def\part@nostar@opt[#1]#2{\NR@gettitle{#1}\titlesec@part[#1]{#2}}
\makeatother
-\newenvironment{chapterabstract}{\begin{quotation}\em}{\end{quotation}} %chktex 6
+\newenvironment{chapterabstract}{\begin{quotation}\em\noindent}{\end{quotation}} %chktex 6
% Increase the depth for the table of contents
\setcounter{secnumdepth}{3}
% Code
% Pseudocode
-\usepackage[algochapter]{algorithm2e}
+\usepackage[algochapter,linesnumbered,lined,boxed]{algorithm2e}
% Fix the algorithm font
\renewcommand\AlCapFnt{\normalfont}
\usepackage{listings}
\newcommand{\arduinoinline}[1]{\lstinline[language={[Arduino]C++},postbreak=]|#1|}
\newcommand{\pythoninline}[1]{\lstinline[language=Python,postbreak=]|#1|}
\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|}
+\newcommand{\cleaninputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{CLEAN})}\lstinputlisting[language=Clean,#1]{#2}}
\newcommand{\haskellinline}[1]{\lstinline[language={[Regular]Haskell},postbreak=]|#1|}
+\newcommand{\haskellinputlisting}[2][]{\renewcommand*{\lstlistingname}{Listing (\gls{HASKELL})}\lstinputlisting[language={[Regular]Haskell},#1]{#2}}
\newcommand{\haskelllhstexinline}[1]{\lstinline[language={[Lhs2Tex]Haskell},postbreak=]|#1|}
%For storing listings in footnotes
\newsavebox{\LstBox}
\usepackage{nameref} % to reference names of chapters
\newcommand{\fullref}[1]{\cref{#1}: \nameref{#1}}
\newcommand{\Fullref}[1]{\Cref{#1}: \nameref{#1}}
+\creflabelformat{equation}{#2\textup{#1}#3}
% Glossaries and acronyms
-\usepackage[nolangwarn,abbreviations,nonumberlist]{glossaries-extra}
+\usepackage[nolangwarn,abbreviations,nonumberlist,prefix]{glossaries-extra}
\setabbreviationstyle[acronym]{long-short}
\Addlcwords{of}
% Titlecase glossary commands