\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}
\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}
\newcommand{\Fullref}[1]{\Cref{#1}: \nameref{#1}}
% 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