+% Nice tables
+\usepackage{booktabs}
+
+% Automatically wrapping tables
+\usepackage{tabularx}
+
+% Use a fixed document date
+\usepackage[nodayofweek]{datetime}
+
+% Code
+\usepackage{stmaryrd} % Short arrow
+\usepackage{listings}
+% General listings settings
+\lstset{%
+ basewidth=0.45em,
+ basicstyle=\linespread{0.9}\tt\footnotesize,
+ breakatwhitespace=false,
+ breaklines=true,
+ captionpos=b,
+ columns=[c]fixed,
+ commentstyle=\sl,
+ escapeinside={(+}{+)}, % chktex 9
+ frame=L,
+ keepspaces=true,
+ keywordstyle=\bf,
+ postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space},
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ stringstyle=\it,
+ tabsize=4,
+% literate=%
+% {a0}{{a\textsubscript{0}}}2
+% {a1}{{a\textsubscript{1}}}2
+% {a2}{{a\textsubscript{2}}}2
+%% {an}{{a\textsubscript{n}}}2
+% {c0}{{c\textsubscript{0}}}2
+% {c1}{{c\textsubscript{1}}}2
+% {c2}{{c\textsubscript{2}}}2
+% {cn}{{c\textsubscript{n}}}2
+% {f0}{{f\textsubscript{0}}}2
+% {f1}{{f\textsubscript{1}}}2
+% {f2}{{f\textsubscript{2}}}2
+% {fn}{{f\textsubscript{n}}}2
+% {t0}{{t\textsubscript{0}}}2
+% {t1}{{t\textsubscript{1}}}2
+% {t2}{{t\textsubscript{2}}}2
+% {tn}{{t\textsubscript{n}}}2
+% {v0}{{v\textsubscript{0}}}2
+% {v1}{{v\textsubscript{1}}}2
+% {v2}{{v\textsubscript{2}}}2
+% {vn}{{v\textsubscript{n}}}2
+% {C0}{{C\textsubscript{0}}}2
+% {C1}{{C\textsubscript{1}}}2
+% {C2}{{C\textsubscript{2}}}2
+% {Cn}{{C\textsubscript{n}}}2
+% {R0}{{R\textsubscript{0}}}2
+% {R1}{{R\textsubscript{1}}}2
+% {R2}{{R\textsubscript{2}}}2
+% {Rn}{{R\textsubscript{n}}}2
+}
+\usepackage{lstlangclean}
+\usepackage{lstlanghaskell}
+\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|}
+\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=]|#1|}